【力扣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);
    }
};
相关推荐
Jiezcode1 小时前
LeetCode 55.跳跃游戏
c++·算法·leetcode·游戏
wheeldown1 小时前
【Leetcode高效算法】用双指针策略打破有效三角形的个数
python·算法·leetcode
蒙奇D索大2 小时前
【数据结构】考研重点掌握:顺序查找算法实现与ASL计算详解
数据结构·笔记·学习·考研·算法·改行学it
TTGGGFF2 小时前
MATLAB仿真:编程基础实验全解析——从入门到实战
数据结构·算法·matlab
Ivanqhz2 小时前
LR算法中反向最右推导(Reverse RightMost Derivation)
人工智能·算法
zl_dfq2 小时前
数据结构 之 【图的最短路径】(Dijstra、BellmanFord、FloydWarShall算法实现)
数据结构·算法
Aobing_peterJr2 小时前
树状数组的原理和简单实现:一种使用倍增优化并支持在线 O(log N) 修改、查询的数据结构
数据结构·算法
大千AI助手2 小时前
二元锦标赛:进化算法中的选择机制及其应用
人工智能·算法·优化·进化算法·二元锦标赛·选择机制·适应生存
独自破碎E2 小时前
归并排序的递归和非递归实现
java·算法·排序算法
K 旺仔小馒头3 小时前
《牛刀小试!C++ string类核心接口实战编程题集》
c++·算法