二叉树和分治法
文章平均质量分 78
SeeDoubleU
这个作者很懒,什么都没留下…
展开
-
二叉树和分治算法总结
文章目录分治法能够处理的问题代码注意事项时间复杂度分析题目汇总分治法能够处理的问题大问题可以拆分成更小规模的问题。每个子问题互相独立,一个子问题的解不会对另一个子问题的解造成影响。当子问题规模特别小的时候,可以直接得到答案的情况。子问题的解可以合并成原有问题的解。当上述所有条件都满足,才能使用分治法处理。代码注意事项分治法使用递归来实现,在递归的使用中要明确递归的三要素:递归的定义——递归函数的返回值、参数要如何定义。递归的拆解——递归如何向下拆分成更小规模的问题。递归的出口原创 2022-04-23 12:52:03 · 1031 阅读 · 0 评论 -
24 二叉树的路径和(Binary Tree Path Sum)
文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码3.1 分治法3.2 遍历法1 题目题目:二叉树的路径和(Binary Tree Path Sum)描述:给定一个二叉树,找出所有路径中各节点相加总和等于给定 目标值 的路径。一个有效的路径,指的是从根节点到叶节点的路径。lintcode题号——376,难度——easy样例1:输入:{1,2,4,2,3},5输出: [[1, 2, 2],[1, 4]]说明:这棵树如下图所示: 1原创 2022-04-23 12:13:17 · 621 阅读 · 0 评论 -
23 二叉树中的最长连续序列(Binary Tree Longest Consecutive Sequence)
文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:二叉树中的最长连续序列(Binary Tree Longest Consecutive Sequence)描述:给一棵二叉树,找到最长连续路径的长度。这条路径是指 任何的节点序列中的起始节点到树中的任一节点都必须遵循 父-子 联系。最长的连续路径必须是从父亲节点到孩子节点(不能逆序)。lintcode题号——595,难度——easy样例1:输入:{1,#,3,2,4,#,#,#,5}输出:3原创 2022-04-23 12:11:57 · 707 阅读 · 0 评论 -
22 最近共同先祖(Lowest Common Ancestor of a Binary Tree)
文章目录1 题目2 解决方案2.1 思路2.2 图解2.3 时间复杂度2.4 空间复杂度3 源码3.1 遍历法1 题目题目:最近共同先祖(Lowest Common Ancestor of a Binary Tree)描述:给定二叉树的根节点和两个子节点,找到两个节点的最近公共父节点(LCA)。最近公共祖先是两个节点的公共的祖先节点且具有最大深度。假设给出的两个节点都在树中存在。lintcode题号——88,难度——medium样例1:输入:tree = {1},A = 1,B = 1输出原创 2022-04-23 12:10:54 · 196 阅读 · 0 评论 -
21 结点之和最小的子树(Minimum Subtree)
文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码3.1 遍历法1 题目题目:结点之和最小的子树(Minimum Subtree)描述:给一棵二叉树, 找到和为最小的子树, 返回其根节点。输入输出数据范围都在int内。lintcode题号——596,难度——easy样例1:输入:{1,-5,2,1,2,-4,-5}输出:1解释:这棵树如下所示: 1 / \ -5 2 / \ / \1 2 -4 -5 整颗原创 2022-04-23 12:06:24 · 518 阅读 · 0 评论 -
20 找出二叉树的所有路径(Binary Tree Paths)
文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:找出二叉树的所有路径(Binary Tree Paths)描述:给一棵二叉树,找出从根节点到叶子节点的所有路径。lintcode题号——480,难度——easy样例1:输入:{1,2,3,#,5}输出:["1->2->5","1->3"]解释: 1 / \2 3 \ 5样例2:输入:{1,2}输出:["1->2"]解释: 1原创 2022-04-23 12:05:35 · 374 阅读 · 0 评论 -
19 二叉树的最大深度(Maximum Depth Of Binary Tree)
文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度4 源码4.1 遍历法4.2 分治法1 题目题目:二叉树的最大深度(Maximum Depth Of Binary Tree)描述:给定一个二叉树,找出其最大深度。最大深度是从根节点到叶节点的最长路径的节点数。lintcode题号——97,难度——easy样例1:输入:tree = {}输出:0解释:空树的深度是0。样例2:输入:tree = {1,2,3,#,#,4,5}输出:3解释:树表示如下,深度原创 2022-04-23 12:02:46 · 154 阅读 · 0 评论 -
18 快速排序2(Quick Sort)
由于CSDN单篇帖子的字数限制,补充上一篇快速排序1中的对向双指针算法的图解:2.2.2 对向双指针在对向双指针的排序方式中,以key值为序列中点元素为例。图解如下:待排序数组#mermaid-svg-HsQkFpkqaRFJtvyZ .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-HsQkFpkqaRF原创 2022-01-10 23:53:34 · 198 阅读 · 0 评论 -
18 快速排序1(Quick Sort)
文章目录1 题目2 思路2.1 两种实现方式2.1.1 同向双指针2.1.2 对向双指针2.2 图解2.2.1 同向双指针2.2.2 对向双指针2.2 时间复杂度2.3 空间复杂度3 源码3.1 同向双指针(取尾元素为key)3.2 对向双指针(取中点元素为key)1 题目题目:Sort Integer IIlintcode题号——464,难度——easy描述:给一组整数,请将其在原地按照升序排序。可使用归并排序,快速排序,堆排序或者任何其他O(n*log n)的排序算法。样例1:输入:[原创 2022-01-10 23:46:59 · 415 阅读 · 0 评论 -
17 归并排序(Merge Sort)
文章目录1 题目3 思路3.1 图解3.2 时间复杂度3.3 空间复杂度4 源码1 题目题目:Sort Integer IIlintcode题号——464,难度——easy描述:给一组整数,请将其在原地按照升序排序。可使用归并排序,快速排序,堆排序或者任何其他O(n*log n)的排序算法。样例1:输入:[3,2,1,4,5],输出:[1,2,3,4,5]。样例2:输入:[2,3,1],输出:[1,2,3]。3 思路 归并排序基于分治法,将复杂的大问题分解成足够简单的小原创 2021-11-04 22:26:07 · 211 阅读 · 0 评论 -
16 二叉树的后序遍历(Binary Tree Postorder Traversal)
文章目录1 题目2 描述3 解决方案3.1 递归算法3.1.1 遍历法(Traverse)思路源码3.1.2 分治法(Devide And Conquer)思路源码3.2 非递归算法3.2.1 二叉树遍历的非递归通用解法思路源码图解3.3 时间复杂度3.4 空间复杂度1 题目 二叉树的后序遍历(Binary Tree Postorder Traversal)lintcode:题号——68,难度——easy2 描述 给出一棵二叉树,返回其节点值的后序遍历。名词:遍历按照一定的顺序对原创 2021-09-24 00:20:36 · 348 阅读 · 0 评论 -
15 二叉树的中序遍历(Binary Tree Inorder Traversal)
文章目录1 题目2 描述3 解决方案3.1 递归算法3.1.1 遍历法(Traverse)思路源码3.1.2 分治法(Devide And Conquer)思路源码3.2 非递归算法3.2.1 二叉树遍历的非递归通用解法思路源码图解3.3 时间复杂度3.4 空间复杂度1 题目 二叉树的中序遍历(Binary Tree Preorder Traversal)lintcode:题号——67,难度——easy2 描述 给出一棵二叉树,返回其节点值的中序遍历。名词:遍历按照一定的顺序对树原创 2021-08-27 00:22:25 · 1978 阅读 · 0 评论 -
14 二叉树的前序遍历(Binary Tree Preorder Traversal)
文章目录1 题目2 描述3 解决方案3.1 递归算法3.1.1 遍历法(Traverse)思路源码3.1.2 分治法(Devide And Conquer)思路源码3.2 非递归算法3.2.1 二叉树遍历的非递归通用解法思路源码图解3.2.2 前序遍历的非递归解法二思路源码3.2.3 前序遍历的非递归解法三思路源码3.3 时间复杂度3.4 空间复杂度4 总结1 题目 二叉树的前序遍历(Binary Tree Preorder Traversal)lintcode:题号——66,难度——easy原创 2021-08-21 01:57:10 · 1199 阅读 · 0 评论