【Leetcode 每日一题】70. 爬楼梯

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

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

示例 1:

复制代码
输入:n = 2
输出:2
解释:有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶

示例 2:

复制代码
输入:n = 3
输出:3
解释:有三种方法可以爬到楼顶。
1. 1 阶 + 1 阶 + 1 阶
2. 1 阶 + 2 阶
3. 2 阶 + 1 阶

提示:

  • 1 <= n <= 45

思考:

f(1)=1;

f(2)=2;

f(3)=3;

f(4)=5;

......

f(n)=f(n-1)+f(n-2);

想象有一个滑动窗口,包含三块,每增加一个n向前滑动一块,也就是将前两个块用后两个的值进行替换,之后计算前两个的和作为第三个块,然后输出。

考虑初始情况,将其设置成0,0,1

从1到n开始遍历循环,不断滑动窗口得到所需要求解的方法数量。

参考代码:

复制代码
class Solution {
public:
    int climbStairs(int n) {
        int a=0,b=0,c=1;
        for(int i = 1; i <= n; ++i) {
            a = b; 
            b = c; 
            c = a + b;
        }
        return c;

    }
};
相关推荐
你撅嘴真丑6 小时前
第九章-数字三角形
算法
在路上看风景6 小时前
19. 成员初始化列表和初始化对象
c++
uesowys6 小时前
Apache Spark算法开发指导-One-vs-Rest classifier
人工智能·算法·spark
zmzb01036 小时前
C++课后习题训练记录Day98
开发语言·c++
ValhallaCoder7 小时前
hot100-二叉树I
数据结构·python·算法·二叉树
董董灿是个攻城狮7 小时前
AI 视觉连载1:像素
算法
念风零壹7 小时前
C++ 内存避坑指南:如何用移动语义和智能指针解决“深拷贝”与“内存泄漏”
c++
智驱力人工智能7 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算
孞㐑¥8 小时前
算法——BFS
开发语言·c++·经验分享·笔记·算法
月挽清风8 小时前
代码随想录第十五天
数据结构·算法·leetcode