【递归、搜索与回溯算法】第七节.257. 二叉树的所有路径和46. 全排列

作者简介:大家好,我是未央;

博客首页:未央.303

系列专栏:递归、搜索与回溯算法

每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!!!

文章目录

  • 前言
  • 一、二叉树的所有路径
  •       1.1 题目描述
  •       1.2 题目解析
  •             1.2.1 算法原理
  •             1.2.2 代码编写
  • 二、全排列
  •       2.1 题目描述
  •       2.2 题目解析
  •             2.2.1 算法原理
  •             2.2.2 代码编写
  • 总结


前言


一、二叉树的所有路径

1.1 题目描述

描述:

给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。

叶子节点 是指没有子节点的节点。


提示:

  • 树中节点的数目在范围 [1, 100] 内
  • -100 <= Node.val <= 100

示例1:


示例2:


1.2 题目解析

1.2.1 算法原理

本题我们可以采用递归的方法解决;

而要写好一个递归,首先就要知道递归的三部曲:

第一步:

先找一下是否有和主问题相同的子问题!!!!----->  关系到函数头的设计;


第二步:

只需要关心某一个子问题是如何解决即可!!!-----> 关系到函数体的书写;


第三步:

最后再注意一下递归函数的出口即可;


所以我们首先就要思考以上三个问题的解决:

第一步:函数头

我们题目要求

而将两个链表合并就成了和主问题相同的子问题;

而函数头就和题目中给定的函数头一样;


第二步:函数体

我们要找到某一个子问题如何解决;

子问题即:

要解决上述子问题:

(1)

(2)

(3)


第三步:递归出口

递归出口即:


1.2.2 代码编写

代码解析:


二、全排列

2.1 题目描述

描述:
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。


提示:

  • 1 <= nums.length <= 6
  • -10 <= nums[i] <= 10
  • nums 中的所有整数 互不相同

示例1:


示例2:


示例3:


2.2 题目解析

2.2.1 算法原理

本题我们可以采用递归的方法解决;

而要写好一个递归,首先就要知道递归的三部曲:

第一步:

先找一下是否有和主问题相同的子问题!!!!----->  关系到函数头的设计;


第二步:

只需要关心某一个子问题是如何解决即可!!!-----> 关系到函数体的书写;


第三步:

最后再注意一下递归函数的出口即可;


所以我们首先就要思考以上三个问题的解决:

第一步:函数头

我们题目要求

而将两个链表合并就成了和主问题相同的子问题;

而函数头就和题目中给定的函数头一样;


第二步:函数体

我们要找到某一个子问题如何解决;

子问题即:

要解决上述子问题:

(1)

(2)

(3)


第三步:递归出口

递归出口即:


2.2.2 代码编写

代码解析:


总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/119208.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能的发展方向:探索智能未来的无限可能

原创 | 文 BFT机器人 人工智能&#xff0c;简称AI&#xff0c;是一门专注于研究计算机如何能像人类一样思考、学习和解决问题的科学。它的创造初衷是构建一个智能系统&#xff0c;能模仿、模拟甚至实现人工智能的各种功能和行为&#xff0c;随着科技的持续进步&#xff0c;人工…

低成本IC上岸攻略—IC设计网课白嫖篇

数字电路基础 清华大学 王红主讲&#xff1a;数字电子技术基础 西安电子科技大学 任爱锋主讲&#xff1a;数字电路与逻辑设计 模拟电路基础 上交大 郑益慧主讲&#xff1a;模拟电子技术基础 清华大学 华成英主讲&#xff1a;模拟电子技术基础 半导体物理&#xff1a; 西…

java--死循环与循环嵌套

1.死循环 可以一直执行下去的一种循环&#xff0c;如果没有干预不会停下来的 2.死循环的写法 3.循环嵌套 循环中又包含循环 4.循环嵌套的特点 外部循环每循环一次&#xff0c;内部循环会全部执行完一轮

【QT】对象树

一、QT对象树的概念 先来看一下 QObject 的构造函数&#xff1a; 通过帮助文档我们可以看到&#xff0c;QObject 的构造函数中会传入一个 Parent 父对象指针&#xff0c;children() 函数返回 QObjectList。即每一个 QObject 对象有且仅有一个父对象&#xff0c;但可以有很多个…

美颜SDK集成指南:为应用添加视频美颜功能

随着社交媒体和直播应用的兴起&#xff0c;视频美颜功能已成为用户追求的一项热门特性。用户希望能够在拍摄照片或进行实时视频直播时&#xff0c;使用美颜功能来增强其外观。为了满足这一需求&#xff0c;开发者可以考虑集成美颜SDK&#xff0c;为其应用增加这一吸引人的功能。…

uniapp接口请求api封装,规范化调用

封装规范和vue中的差不多&#xff0c;都是统一封装成一个request对象&#xff0c;然后在api.js里面调用。 先创建一个utils文件夹&#xff0c;然后里面创建一个request.js&#xff0c;代码如下&#xff1a; export const baseURL 基础url地址const request (options) > …

面试题:线程池执行的用户任务抛出异常会怎样?

文章目录 ThreadPoolExecutor.execute源码分析 ThreadPoolExecutor.submit源码分析 ScheduledThreadPoolExecutor.schedule源码分析 思考&#xff1a;ThreadPoolExecutor.execute发生异常时为什么要退出 ThreadPoolExecutor.execute 源码分析 看源码可以知道&#xff0c;Thre…

VScode连接的服务器上使用jupyter显示请选择内核源

问题复现 我实在VScode上用ssh-remote连接的服务器&#xff0c;想用.ipynb文件上写东西&#xff0c;结果窗口上方弹出一个输入框&#xff0c;“请键入以选择内核”&#xff1b; 在扩展里找到jupyter更新一下 之前左边的图标是灰色的&#xff0c;后来我下下载了新的版本&#…

Xcode自定义快捷键

一、新建脚本 1. 编写脚本 把脚本sh文件保存在安全的目录&#xff0c;不会被删除 我这里主要是两个常用的&#xff1a; 1.打开终端: xcode-terminal.sh #!/bin/shif [ -n "$XcodeProjectPath" ]; then open -a Terminal "$XcodeProjectPath"/.. elseo…

数据挖掘和大数据的区别

数据挖掘 一般用于对企业内部系统的数据库进行筛选、整合和分析。 操作对象是数据仓库&#xff0c;数据相对有规律&#xff0c;数据量较少。 大数据 一般指对互联网中杂乱无章的数据进行筛选、整合和分析。 操作对象一般是互联网的数据&#xff0c;数据无规律&#xff0c;…

“淘宝” 开放平台接口设计思路|开放平台接口接入流程教程

最近对接的开放平台有点多&#xff0c;像淘宝、京东、快手、抖音等电商平台的开放平台基本对接了个遍&#xff0c;什么是CRUD BODY也许就是这样的吧&#xff01;&#xff01;&#xff01; 虽然对接各大开放平台没啥技术含量&#xff0c;但咱也得学点东西不是&#xff0c;不能白…

使用canvas实现时间轴上滑块的各种常用操作(仅供参考)

一、简介 使用canvas&#xff0c;模拟绘制时间轴区域&#xff0c;有时间刻度标尺&#xff0c;时间轴区域上会有多行&#xff0c;每行都有一个滑块。 1、时间刻度标尺可以拖动&#xff0c;会自动对齐整数点秒数&#xff0c;最小步数为0.1秒。 2、滑块可以自由拖动&#xff0c…

VR全景拍摄市场需求有多大?适用于哪些行业?

随着VR全景技术的成熟&#xff0c;越来越多的商家开始借助VR全景来宣传推广自己的店铺&#xff0c;特别是5G时代的到来&#xff0c;VR全景逐渐被应用在我们的日常生活中的各个方面&#xff0c;VR全景拍摄的市场需求也正在逐步加大。 通过VR全景技术将线下商家的实景“搬到线上”…

RTE2023大会来袭,声网宣布首创广播级4K超高清实时互动体验

10月24日&#xff0c;由声网和RTE开发者社区联合主办的RTE2023第九届实时互联网大会在北京举办&#xff0c;声网与众多RTE领域技术专家、产品精英、创业者、开发者一起&#xff0c;共同开启了以“智能高清”为主题的全新探讨。本届RTE大会将持续2天&#xff0c;开展1场主论坛及…

vm_flutter

附件地址 https://buuoj.cn/match/matches/195/challenges#vm_flutter 可以在buu下载到。 flutter我也不会&#xff0c;只是这个题目加密算法全部在java层&#xff0c;其实就是一个异或和相加。 反编译 package k;import java.util.Stack;/* loaded from: classes.dex */ pu…

Python基础入门例程12-NP12 格式化输出(二)

目录 描述 输入描述&#xff1a; 输出描述&#xff1a; 示例1 解答&#xff1a; 说明&#xff1a; 描述 牛牛、牛妹和牛可乐都是Nowcoder的用户&#xff0c;某天Nowcoder的管理员希望将他们的用户名以某种格式进行显示&#xff0c; 现在给定他们三个当中的某一个名字name…

淘宝API接口获取商品信息,订单管理,库存管理,数据分析

在淘宝开放平台中&#xff0c;每个API接口都有相应的文档说明和授权机制&#xff0c;以确保数据的安全性和可靠性。开发者可以根据自己的需求选择相应的API接口&#xff0c;并根据文档说明进行调用和使用。 淘宝开放平台API接口是一套REST方式的开放应用程序编程接口&…

web自动化测试——跨平台设备管理方案Selenium Grid

跨平台设备管理方案Selenium Grid 一、Selenium Grid简介二、使用场景场景一&#xff1a; 实现分布式执行测试&#xff0c;提高执行效率场景二&#xff1a; 解决浏览器兼容性问题新特性 三、Selenium Grid4原理分析四、环境安装五、运行方式&#xff1a;单机运行 - 独立模式1. …

uni-app:引用文件的方法

绝对定位 ①import common from "/utils/common.js" ②import common from "utils/common.js" <template><view></view> </template> <script>import common from "/utils/common.js"export default {data() {ret…

HarmonyOS 音频开发指导:使用 OpenSL ES 开发音频播放功能

OpenSL ES 全称为 Open Sound Library for Embedded Systems&#xff0c;是一个嵌入式、跨平台、免费的音频处理库。为嵌入式移动多媒体设备上的应用开发者提供标准化、高性能、低延迟的 API。HarmonyOS 的 Native API 基于Khronos Group开发的OpenSL ES 1.0.1 API 规范实现&am…