【矩阵快速幂优化 DP】力扣70. 爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

示例 1:

输入:n = 2

输出:2

解释:有两种方法可以爬到楼顶。

1 阶 + 1 阶

2 阶

示例 2:

输入:n = 3

输出:3

解释:有三种方法可以爬到楼顶。

1 阶 + 1 阶 + 1 阶

1 阶 + 2 阶

2 阶 + 1 阶

提示:

1 <= n <= 45

cpp 复制代码
class Solution {
public:
    int climbStairs(int n) {
        vector<int> dp(n+1);
        if (n == 1) return 1;
        dp[1] = 1;
        dp[2] = 2;
        for(int i = 3; i <= n; i++){
            dp[i] = dp[i-1] + dp[i-2];
        }
        return dp[n];
    }
};

时间复杂度O(N)
空间复杂度O(N)

经典的动态规划基础题,我们可以定义一个dp[i]为爬i个阶梯的方法,那么我们可以列出动态转移方程dp[i] = dp[i-1] + dp[i-2],最后返回dp[n]即可。

相关推荐
元亓亓亓7 分钟前
LeetCode热题100--152. 乘积最大子数组--中等
算法·leetcode·职场和发展
梭七y44 分钟前
【力扣hot100题】(103)移动零
数据结构·算法·leetcode
IT猿手1 小时前
三维动态避障路径规划:基于部落竞争与成员合作算法(CTCM)融合动态窗口法DWA的无人机三维动态避障方法研究,MATLAB代码
算法·matlab·动态规划·无人机·路径规划·动态路径规划
Jeremy爱编码2 小时前
leetcode热题腐烂的橘子
算法·leetcode·职场和发展
alphaTao2 小时前
LeetCode 每日一题 2025/12/22-2025/12/28
算法·leetcode
小白菜又菜3 小时前
Leetcode 1523. Count Odd Numbers in an Interval Range
算法·leetcode
RedMery3 小时前
厄米特矩阵的性质
线性代数·矩阵
小白菜又菜4 小时前
Leetcode 944. Delete Columns to Make Sorted
算法·leetcode
Swift社区5 小时前
LeetCode 458 - 可怜的小猪
算法·leetcode·职场和发展
Dream it possible!6 小时前
LeetCode 面试经典 150_分治_将有序数组转换为二叉搜索树(105_108_C++_简单)(递归)
c++·leetcode·面试