【矩阵快速幂优化 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)

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

相关推荐
yyds_yyd_100867 小时前
1464. 数组中两元素的最大乘积(2026.07.27)
数据结构·c++·算法·leetcode
玖玥拾11 小时前
LeetCode 26 删除有序数组中的重复项
算法·leetcode
USB_ABC13 小时前
工程级视频矩阵选型技术指南:无缝矩阵切换延迟参数标准与评估要点
线性代数·矩阵·音视频
白白白小纯13 小时前
算法篇—返回倒数第k个节点
c语言·数据结构·算法·leetcode
退休倒计时13 小时前
【复习】LeetCode 二叉树DFS TypeScript
算法·leetcode·typescript·深度优先
白白白小纯15 小时前
算法篇—链表的中间节点
c语言·数据结构·算法·leetcode
Frostnova丶15 小时前
(19)LeetCode 54. 螺旋矩阵
算法·leetcode·矩阵
Frostnova丶15 小时前
(18)LeetCode 73. 矩阵置零
算法·leetcode·矩阵
番茄撒旦在上15 小时前
LeetCode 98.验证二叉搜索树-Medium
算法·leetcode
rannn_11116 小时前
【力扣hot100】哈希表专题——从两数之和到最长连续序列
java·算法·leetcode·哈希