Day1 动态规划

112 阅读1分钟

斐波那契数

视频讲解

力口链接

动态规划五部曲:

1.确定dp[i] 含义:

2.递推公式

3.dp数组如何初始化

4.遍历顺序:从前向后还是从后向前

5.打印dp数组

debug的时候,把dp数组print出来,对比自己的想法是否正确。

70.爬楼梯

**题目:**假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

leetcode 题目 思路: 当前层, 可以是后面的台阶跨一步上来的,也可以是后面的台阶跨两步上来的。所以,如果题目扩展为每次你可以爬 1 或 23 个台阶。 那么就是当前层, 可以是后面的台阶跨一/二/三步上来的。

1.确定dp[i] 含义:达到第i阶有dp[i]种方法

2.递推公式: 1阶 1种; 2阶 2种; 3阶 3种; 4阶 5种 dp[i] = dp[i-2] + dp[i-1]

3.dp数组如何初始化 dp[0] = 1; dp[1] = 1; dp[2] = 2

4.遍历顺序:从前向后

5.打印dp数组