LeetCode热题100 爬楼梯

题目描述

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

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

示例 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

思路

动态规划模板,fi表示第i步的方法数,转移方程为:fi = fi - 1 + fi - 2。

代码

cpp 复制代码
class Solution {
public:
    int climbStairs(int n) {
        int p = 0, q = 0, r = 1;
        for(int i = 1; i <= n; ++i)
        {
            p = q, q = r, r = p + q;            
        }   
        return r;
    }
};
相关推荐
软件派18 小时前
生产动态数据智能风控:阈值判别、趋势预测、异常识别算法工程落地实战
前端·数据库·算法
悠仁さん1 天前
【C++】AVL 树
c++
wuminyu1 天前
JVM规范学习总结:解释器与JIT编译器如何处理JVM字节码
java·linux·c语言·jvm·c++
小徐不徐说1 天前
序列化与反序列化:把 C++ 对象可靠地保存下来
开发语言·数据库·c++·php
ZhengEnCi1 天前
模型训练完整流程:从数据准备到模型上线的 10 个关键步骤(全文可跑)
后端·算法
ragnwang1 天前
Notes: Python pybind11 import C++ module
开发语言·c++·python
充值内卷1 天前
我给桌面加了个鱼缸:C++ 写后端,WebView2 里养一座 Three.js 小岛
开发语言·javascript·c++
吞下星星的少年·-·1 天前
Div.3 CF 1131A题(排序,模拟)
算法·模拟·排序
圣保罗的大教堂1 天前
leetcode 453. 最小操作次数使数组元素相等 中等
leetcode