【力扣hot100题】(080)爬楼梯

让我们掌声恭迎动态规划的始祖------

最基础的动态规划,原始方法是维护一个数组,每次记录到该阶梯的方案数量,每次的数量是到上一个阶梯的方案数量加上到上上一阶梯的方案数量,因为只有两种走法。

进阶可以优化空间复杂度,只记录两个数字,因为更之前的数据都用不上了。

我当然是直接写优化方案------

cpp 复制代码
class Solution {
public:
    int climbStairs(int n) {
        if(n==1) return 1;
        if(n==2) return 2;
        int one=1;
        int two=2;
        for(int i=3;i<=n;i++){
            if(i%2==0) two=one+two;
            else one=one+two;
        }
        return max(one,two);
    }
};
相关推荐
独家回忆36444 分钟前
每日算法-250531
算法
@我漫长的孤独流浪1 小时前
数据结构测试模拟题(2)
数据结构·c++·算法
秋难降1 小时前
贪心算法:看似精明的 “短视选手”,用好了也能逆袭!💥
java·算法
没故事的燕同学1 小时前
C++递推
算法
一只自律的鸡2 小时前
STL之vector
开发语言·c++·算法
岁忧2 小时前
LeetCode 高频 SQL 50 题(基础版)之 【聚合函数】部分
数据库·sql·leetcode
GEEK零零七2 小时前
Leetcode 159. 至多包含两个不同字符的最长子串
算法·leetcode·滑动窗口
MindTechBuilder3 小时前
实时通信的深度技术剖析
算法
似水এ᭄往昔3 小时前
【数据结构】——二叉树--链式结构
数据结构·算法