File tree Expand file tree Collapse file tree 2 files changed +39
-2
lines changed
Expand file tree Collapse file tree 2 files changed +39
-2
lines changed Original file line number Diff line number Diff line change @@ -59,8 +59,9 @@ leetcode 题解,记录自己的 leecode 解题之路。
5959
6060### 数据结构与算法的总结
6161
62- - [ basic-data-structure] ( ./thinkings/basic-data-structure.md )
63- - [ binary-tree-traversal] ( ./thinkings/binary-tree-traversal.md )
62+ - [ basic-data-structure] ( ./thinkings/basic-data-structure.md ) (草稿)
63+ - [ binary-tree-traversal] ( ./thinkings/binary-tree-traversal.md ) (草稿)
64+ - [ dynamic-programming] ( ./thinkings/dynamic-programming.md ) (草稿)
6465
6566### anki 卡片
6667
7172[ 301.remove-invalid-parentheses]
7273
7374[ 609.find-duplicate-file-in-system]
75+
76+ [ 一个非常简单,但是有效的算法 - 布隆过滤器]
77+
78+ > 从这个算法可以对 tradeoff 有更入的理解。
Original file line number Diff line number Diff line change 1+ # 递归和动态规划
2+
3+ 动态规划可以理解为是查表的递归。那么什么是递归?
4+
5+ ## 递归
6+
7+ 定义: 递归算法是一种直接或者间接调用自身函数或者方法的算法。
8+
9+ ### 递归的三个要素
10+
11+ 相关问题:
12+
13+ - 递归实现 sum
14+
15+ - 二叉树的遍历
16+
17+ - 走楼梯问题
18+
19+ - 汉诺塔问题
20+
21+ ## 动态规划
22+
23+ ` 如果说递归是从问题的结果倒推,直到问题的规模缩小到寻常。 那么动态规划就是从寻常入手, 逐步扩大规模到最优子结构。 ` 这句话需要一定的时间来消化,
24+ 如果不理解,可以过一段时间再来看。
25+
26+ 递归的解决问题非常符合人的直觉,代码写起来比较简单。但是我们通过分析(可以尝试画一个递归树),可以看出递归在缩小问题规模的同时可能会
27+ 重复计算。 [ 279.perfect-squares] ( ../problems/279.perfect-squares.md ) 中 我通过递归的方式来解决这个问题,同时内部维护了一个缓存
28+ 来存储计算过的运算,那么我们可以减少很多运算。 这其实和动态规划有着异曲同工的地方。
29+
30+ 我们结合求和问题来讲解一下。
31+
32+ ### 动态规划的三个要素
You can’t perform that action at this time.
0 commit comments