递归定义 递归的一个简单定义:当函数直接或者间接调用自己时,则发生了递归。 递归的基本思想就是“自己调用自己”,一个使用递归技术的方法会直接或间接的调用自己递归构造包括两个部分: 定义递归头。什么时候不调用自身方法,如果没有头,将陷入死循环递归体。什么时候需要调用自身方法。 其实递归算法很简单,简单 ...
分类:
编程语言 时间:
2020-05-15 00:30:42
阅读次数:
60
什么是树? 在现实生活中有很多能体现出树的逻辑的例子。 例如:企业里的职位关系,也是一颗树。 再例如:操作系统的文件夹目录,也是一颗树。 那么以上的这些例子有什么共同点呢?为什么称它们为"树"呢? 因为它们都像自然界中的树一样,从同一个"根"衍生出许多的"枝干",再从每一个"枝干"衍生出许多更小的" ...
分类:
其他好文 时间:
2020-05-13 17:12:08
阅读次数:
62
2.阅读代码——动态规划 乔治·桑塔亚纳说过,“那些遗忘过去的人注定要重蹈覆辙。”这句话放在问题求解过程中也同样适用。不懂动态规划的人会在解决过的问题上再次浪费时间,懂的人则会事半功倍。那么什么是动态规划?这种算法有何神奇之处? 目的:为了避免解决重复性问题 斐波那契 1.递归算法 任何一个递归函数 ...
分类:
其他好文 时间:
2020-05-06 13:54:18
阅读次数:
50
题目: 解法: 方法:递归 算法: 从问题的描述中,可以清楚地了解到,我们需要在给定树的每个结点处找到其坡度,并将所有的坡度相加以获得最终结果。要找出任意结点的坡度,我们需要求出该结点的左子树上所有结点和以及其右子树上全部结点和的差值。 因此,为了找出解决方案,我们使用递归函数 traverse,在 ...
分类:
其他好文 时间:
2020-05-03 14:53:40
阅读次数:
61
我们已计算阶乘(factorial)为例,当重复调用factorial(9),factorial(8),factorial(7)的时候,显然在factorial(9)已经计算了后面两个的值,factorial(8)和factorial(7)算是重复计算。目标就是对此进行优化。 ...
分类:
编程语言 时间:
2020-05-02 11:42:25
阅读次数:
84
给定一个二叉树,返回它的 前序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 来源:力扣(LeetCode) 解法一:迭代 解法二:递归 /** * Definition for a binary t ...
分类:
其他好文 时间:
2020-05-02 11:38:36
阅读次数:
52
一、题目说明 题目617. Merge Two Binary Trees,合并两个二叉树。难度是Easy! 二、我的解答 这个题目,用递归解法非常简单,同二叉树的递归遍历。 性能如下: 三、优化措施 非递归算法就不写了。 ...
分类:
其他好文 时间:
2020-05-01 10:38:15
阅读次数:
57
145.二叉数的后序遍历 给定一个二叉树,返回它的 后序 遍历。 示例: 输入: [1,null,2,3] 1 \\ 2 / 3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 后序遍历的概念 后序遍历就是先遍历左子树,然后遍历右子树,然后访问根节点。 递归实现 先左子树 ...
分类:
其他好文 时间:
2020-04-27 17:04:50
阅读次数:
55
144.二叉数的前序遍历 给定一个二叉树,返回它的 前序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 前序遍历的概念 前序遍历就是先访问根节点,然后遍历左子树,然后遍历右子树。 递归实现 先root ...
分类:
其他好文 时间:
2020-04-27 13:14:14
阅读次数:
34
问题描述: 有n个物品,它们有各自的体积和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和? 总体思路: 针对每个物品只有选与不选。 1. 判断背包容量是否能承载第n个物品。 不能承载:判断下一个物品 能承载:选择 装 还是 不装。不装,判断下一个物品;装,背包容量-物品重量,现有 ...
分类:
编程语言 时间:
2020-04-27 11:31:58
阅读次数:
49