LeetCode HOT100 - 爬楼梯
经典 DP
dp[i] 表示爬到 i 的方案数
转移就是考虑什么状态能够到 i ,所以 dp[i] = dp[i - 1] + dp[i - 2]
初始 dp[0] = 1
理解为一开始到 0 的方案数只有 1
class Solution {
public:
int climbStairs(int n) {
vector<int> dp(n + 1);
dp[0] = 1;
for (int i = 1; i <= n; i++) {
dp[i] = dp[i - 1];
if (i >= 2) dp[i] += dp[i - 2];
}
return dp[n];
}
};

浙公网安备 33010602011771号