- 1
- 0
- 约小于1千字
- 约 6页
- 2026-08-23 发布于山东
- 举报
罗勇军
8.2动态规划的两种编码方法
蓝桥杯算法入门
DP的两种编程方法
DP的两种思路:
自顶向下(Top-Down,先大问题再小问题)
自下而上(Bottom-Up,先小问题再大问题)
DP的两种编程方法:
自顶向下:用带记忆化的递归编码
自下而上:用递推编码
两种方法的复杂度一样:每个子问题都计算一遍,而且只计算一遍。
(1)自顶向下与记忆化
自顶向下:先考虑大问题,再缩小到小问题,直到最小的问题无法再缩小。
由于递归很直接地体现了这种思路,所以也可以用递归来写DP的代码。
记忆化:为避免递归时重复计算子问题,可以在子问题得到解决时,就保存结果,再次需要这个结果时,直接返回保存的结果就行了。这种存储已经解决的子问题的结果的技术称为“记忆化”。
4
N=101
dp=[0]*N#记忆结果
deffib(n):
ifn==1orn==2:return1
ifdp[n]!=0:returndp[n]#已经计算过,直接返回结果,不再递归
dp[n]=fib(n-1)+fib(n-2)#递归计算,并记忆
returndp[n]
print(fib(100))#第100个数是:35422484
您可能关注的文档
- 蓝桥杯算法入门(Python) 课件 1-1蓝桥杯软件赛参赛规则.pptx
- 蓝桥杯算法入门(Python) 课件 1-2蓝桥杯软件赛题型介绍.pptx
- 蓝桥杯算法入门(Python) 课件 1-4蓝桥杯软件赛知识点.pptx
- 蓝桥杯算法入门(Python) 课件 1-5备赛计划.pptx
- 蓝桥杯算法入门(Python) 课件 2-1杂题和编程能力.pptx
- 蓝桥杯算法入门(Python) 课件 2-2杂题例题.pptx
- 蓝桥杯算法入门(Python) 课件 2-3填空题概述.pptx
- 蓝桥杯算法入门(Python) 课件 2-4填空题例题.pptx
- 蓝桥杯算法入门(Python) 课件 3-3链表.pptx
- 蓝桥杯算法入门(Python) 课件 3-7二叉树.pptx
原创力文档

文档评论(0)