🧩Algo 动态规划

70. 爬楼梯

难度:🟢 Easy | 标签:动归、斐波那契 | 状态:⬜ LeetCode 链接

思路

dp[i] = dp[i-1] + dp[i-2](最后一步是 1 阶或 2 阶)。 等价于斐波那契。

代码

class Solution {
public:
    int climbStairs(int n) {
        if (n <= 2) return n;
        int a = 1, b = 2;
        for (int i = 3; i <= n; ++i) {
            int c = a + b;
            a = b; b = c;
        }
        return b;
    }
};

复杂度

  • 时间 O(n),空间 O(1)

易错 / 回顾

  • dp[1] = 1, dp[2] = 2,注意初值
  • 滚动两变量即可
  • 通项 / 矩阵快速幂 O(log n),进阶才需要
Related · 动态规划