重新安排行程 题解: 本题也可使用回溯法,这道题有以下几个难点 1.如何处理死循环问题 2.如何记录映射关系 3.使用回溯的终止条件是什么 4.搜索的过程中,如何遍历一个机场...
递增子序列 题解: 乍一看这道题,好像是需要把原数组要排序的,其实不需要,我们通过两个示例就可以看出,他是找这序列中的递增子序列的 我们通过例子4,5,4,5],先取4 余[...
子集 题解: 我们从给的示例中可以看出,子集与组合的区别了,组合其实是在求树形结构的叶子节点,子集其实在求树所有的节点 1.递归方法的传参 题目中给定的集合nums,取过的元...
组合总和 题解: 此题和前面的组合问题不同之处是,可以重复取同一个数字,不限制 1.递归函数的参数 题目给定的集合candidates以及目标值target,题目中是在求和,...
组合总和ii 题解: 1.回溯函数的参数以及返回值 定义两个数组变量,path用来存放符合条件的单一结果,result用来存放符合条件的结果集合 题目中给定的k,n必须要要传...
组合 题解: 1.递归方法的参数以及返回值 从示例中我们可以看出,需要定义两个列表变量,一个用来存放符合条件的单一结果,另一个存放符合条件结果的集合 方法的参数一定要有整数n...
二叉搜索树的最小绝对差 代码: 递归: 迭代: 二叉搜索树中的众数
最大二叉树 题解: 此题目和通过前序和后序遍历来构造二叉树是一样的,1.首先我们判空数组,也是作为递归终止的条件。2找到数组中的最大值,以及其所在的下标位置,3.创建根节点,...
找树左下角的值 题解: 如何理解树最下角的值?最后一行,且是最左边的值。找最左边,我们想到的是前序遍历。 1.确定递归函数的参数和返回值 遍历的树的根节点,记录深度的变量,无...
二叉树的所有路径 题解: 这道题要求从根节点到叶子的路径,所以需要前序遍历,这样才方便让父节点指向孩子节点,找到对应的路径,因此涉及到了回溯。 1.递归函数及返回值 传入根节...
二叉树的最大深度 题解: 根据题中解释二叉树的深度是根节点到叶子节点的节点树,我们也可以理解为第一层到最后一层的距离,我们可以使用层序遍历,最终判断结果集中的长度 代码: 二...
二叉树的层序遍历 题解: 使用队列来实现,定义一个结果集res,定义一个双端队列,初始化为根节点,我们示例可以看出,是两层列表嵌套,也就是说我们要在循环中还要创建一个列表tm...
二叉树的理论基础 二叉树的种类 满二叉树:如果一棵树只有度(表示节点拥有的子节点数)为0的结点和度为2的节点,并且度为0的节点在同一层上 完全二叉树:在完全二叉树中,除了底层...
滑动窗口最大值 题解: 使用单调队列,放进去窗口里的元素,随着窗口的移动,队列也一进一出,每次移动之后,就会得到窗口的最大值是什么。队列里的数据一定是要排序的,不然不知道最大...
有效的括号 题解: 有三种不匹配的情况: 1.字符串里左方向的括号多余了 2.括号没有多余,括号的类型不匹配 3.字符串里右方向的括号多余了 代码实现上来说,我们在遍历到左括...
栈与队列最基本的特征: 栈:先进后出 队列:先进先出 用栈实现队列: 题解: 栈是先进后出的数据结构,队列是先进先出,题目中已经说明,需要两个栈来实现队列,题目中让实现的方法...
重复的子字符串 题解: 首先找到 s 的最短重复子串 t,即 t 是 s 的一个前缀,并且 s 可以由 t 重复若干次得到。具体方法是从字符串的中间位置开始,逐步缩小范围,直...
反转字符串 题解: 使用双指针,从数组的两端开始,进行对换 代码: 反转字符串 ii 题解: 套用上题的反转方法,将字符串列表化;题意的意思是计数至2k,那我们每次遍历至2k...