![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
必拿下
文章平均质量分 62
无敌玩家
这个作者很懒,什么都没留下…
展开
-
[必拿下]回溯算法之leetcode131分割回文串
题目如下:给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串。返回 s 所有可能的分割方案。如果remove(sub)的话里面可能有多个字符串都是"c"这类的。回文串 是正着读和反着读都一样的字符串。原创 2022-10-13 17:26:35 · 179 阅读 · 0 评论 -
【必拿下】回溯法解决LeetCode40组合总和II
相信聪明的你发现了,其实就元素在一个组合之间是可以重复的(前提是candidates里面有多个值相同的元素),而组合之间不能相同.如上所示:回溯的for循环里面中代表的是同一树层,而递归代表同一枝干.现在大家概念应该很清楚了.输入: candidates = [10,1,2,7,6,1,5], target = 8,其实参考上面的[1,1,6]和[1,7]大家就可以发现了,毕竟没有出现两个[1,7]嘛。而我们这一题所对应的就是同一树层上相同值不能重复选取.其实去重也就是使用过的元素不能再选取.原创 2022-10-13 16:40:55 · 343 阅读 · 0 评论 -
【必拿下系列】leetcode617. 合并二叉树
想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。输入:root1 = [1,3,2,5], root2 = [2,1,3,null,4,null,7]迭代的话,需要额外注意:进栈的顺序和什么时候进栈,什么时候不用进栈可以直接处理,当然使用队列也ok。注意: 合并过程必须从两个树的根节点开始。输出:[3,4,5,5,4,null,7]原创 2022-09-26 20:54:37 · 58 阅读 · 0 评论 -
【必拿下系列】leetcode.654最大二叉树
给定一个不重复的整数数组 nums。你要是想迭代的话,会麻烦很多,所以这边就不展示迭代对应的代码了.返回 nums 构建的 最大二叉树。读完题目和例子思路也浮出脑海了.原创 2022-09-26 20:38:31 · 87 阅读 · 0 评论 -
【必拿下系列】106. 从中序与后序遍历序列构造二叉树&105从前序与中序遍历序列构造二叉树
两题各自的链接放这里了: 链接: 106 链接: 105如果你是不知道理论的,那就得仔细分析了, 举个例子:在这个实例中结合我们对中序遍历(左中右)和后序遍历(左右中)的了解我们不难发现这其中肯定有一定的联系(当然题目都这么出,肯定暗藏玄机啦), 你看,你仔细看: 105从前序与中序遍历序列构造二叉树 其实差不多,我们上面那个是利用后序遍历的最后一个就是中间节点, 而前序只不过是第一个就是中间节点. 代码如下:原创 2022-09-25 11:05:29 · 118 阅读 · 0 评论 -
【必拿下系列】路径总和112&路径总和113
链接: 路径总和112直达地 链接: 路径总和II113直达地题目如下 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。叶子节点 是指没有子节点的节点。 阅读题目所得:是需要求从头结点到叶子节点的所有路径中他们val的和是否有正好等于targetSum的存在 划重点:叶子节点和返回值boolean 思考如下:需要从头结点到叶原创 2022-09-24 10:22:41 · 530 阅读 · 0 评论 -
【必拿下系列】Leetcode找树左下角的值513
最底层最左边:可以使用层序遍历来解决,无非就是当我们遍历(同时保证单层元素遍历方向是从左到右)时把第一个遍历的节点弹出作为最终的返回值.最底层最左边:也可以通过递归来啊,通过求深度的前序遍历(这和上面一样间接保证了单层元素的遍历方向是从左向右)来解决嘛,然后如果他的。1.我们要找的是最底层最左边节点的值嘛,那么如何确定这个节点符合最低层最左边节点的值呢?给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。深度是大于我们当前保存深度最大的节点,则让新值覆盖旧值.原创 2022-09-24 09:26:01 · 48 阅读 · 0 评论