mirror of
https://github.com/krahets/hello-algo.git
synced 2026-04-05 11:41:22 +08:00
Update the book based on the revised second edition (#1014)
* Revised the book * Update the book with the second revised edition * Revise base on the manuscript of the first edition
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
# 小结
|
||||
|
||||
- 动态规划对问题进行分解,并通过存储子问题的解来规避重复计算,提高 计算效率。
|
||||
- 动态规划对问题进行分解,并通过存储子问题的解来规避重复计算,提高计算效率。
|
||||
- 不考虑时间的前提下,所有动态规划问题都可以用回溯(暴力搜索)进行求解,但递归树中存在大量的重叠子问题,效率极低。通过引入记忆化列表,可以存储所有计算过的子问题的解,从而保证重叠子问题只被计算一次。
|
||||
- 记忆化递归是一种从顶至底的递归式解法,而与之对应的动态规划是一种从底至顶的递推式解法,其如同“填写表格”一样。由于当前状态仅依赖某些局部状态,因此我们可以消除 $dp$ 表的一个维度,从而降低空间复杂度。
|
||||
- 记忆化搜索是一种从顶至底的递归式解法,而与之对应的动态规划是一种从底至顶的递推式解法,其如同“填写表格”一样。由于当前状态仅依赖某些局部状态,因此我们可以消除 $dp$ 表的一个维度,从而降低空间复杂度。
|
||||
- 子问题分解是一种通用的算法思路,在分治、动态规划、回溯中具有不同的性质。
|
||||
- 动态规划问题有三大特性:重叠子问题、最优子结构、无后效性。
|
||||
- 如果原问题的最优解可以从子问题的最优解构建得来,则它就具有最优子结构。
|
||||
|
||||
Reference in New Issue
Block a user