class Solution {
public:
int climbStairs(int n) {
// 下标 dp[j] ,到j层台阶需要的方法
// 初始化 dp[0]=1
// 递推 dp[j] += dp[j-nums[i]]
// 顺序 外层背包,内存物品
// int nums[2] = {1, 2};
vector<int> dp(n+1, 0);
dp[0] = 1;
for (int i = 0; i <= n; i++) {
for (int j = 1; j <= 2; j++) {
if (i >= j) //!! 要判断
dp[i] += dp[i - j];
}
}
return dp[n];
}
};
问题
- 数组初始化
- 背包大小要大于物品