- 确定dp数组及其下标的含义
- 确定递推公式
- dp数组初始化
- 确定遍历顺序
- 推导dp数组
台阶问题:d[i] = d[i-1] + d[i-2]
每次可以走m阶楼梯
class Solution {
public:
int climbStairs(int n) {
vector<int> dp(n + 1, 0);
dp[0] = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) { // 把m换成2,就可以AC爬楼梯这道题
if (i - j >= 0) dp[i] += dp[i - j];
}
}
return dp[n];
}
};