力扣70题 爬楼梯

1.确定dp数组以及下标的含义

dp[i]:爬到第i层楼梯,有dp[i]种方法

2.确定递推公式

dp[i]=dp[i-1]+dp[i-2]

3.dp数组如何初始化

dp[1]=1,dp[2]=2

4.确定遍历顺序

从前向后遍历的

5.举例推导dp数组

class Solution {
public:
    int climbStairs(int n) {
        if (n <= 1) return n; // 因为下面直接对dp[2]操作了,防止空指针
        vector<int> dp(n + 1);
        dp[1] = 1;
        dp[2] = 2;
        for (int i = 3; i <= n; i++) { // 注意i是从3开始的
            dp[i] = dp[i - 1] + dp[i - 2];
        }
        return dp[n];
    }
};
posted @ 2025-09-16 20:00  往事携冷风  阅读(6)  评论(0)    收藏  举报