【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;

    }
};
相关推荐
卷无止境9 小时前
Eigen 库如何借助 OpenMP 加速计算
c++·后端
_清歌10 小时前
DSpark 深度解读:DeepSeek-V4 如何用「半自回归」把推理速度提升 85%
算法
统计实现局10 小时前
SVD 的三步走:双对角化、Givens 收敛、排序
算法
躬行见万象10 小时前
《VLA 系列》UniLab 强化训练 | G1 机器人 |复现
算法
统计实现局10 小时前
对称不定分解(Bunch-Kaufman):为什么 Cholesky 不够用
算法
统计实现局10 小时前
dqrsl 拆解:拿着 QR 结果能算出哪 5 种东西
算法
卷无止境10 小时前
OpenMPI、MPICH 与 OpenMP:关系、核心概念与架构全解
c++·后端
统计实现局10 小时前
为什么 Cholesky 求逆比 Gauss-Jordan 快一倍——行列式溢出防护详
算法
To_OC21 小时前
LC 994 腐烂的橘子:人人都说是 BFS 入门题,我却写了三遍才过
javascript·算法·leetcode