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];
    }
};
posted @ 2026-05-11 11:12  rdcamelot  阅读(10)  评论(0)    收藏  举报