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

原题链接:70. 爬楼梯 - 力扣(LeetCode)

思路:爬到第 x 级台阶的方案数是爬到第 x−1 级台阶的方案数和爬到第 x−2 级台阶的方案数的和。因此,f(x)=f(x−1)+f(x−2)

代码:

cpp 复制代码
class Solution {
public:
    int climbStairs(int n) {
        int p = 0, q = 0, r = 1;
        while(n--){
            p = q;
            q = r;
            r = p + q;
       }
       return r;
    }
};
相关推荐
库玛西几秒前
快速幂算法全景总结图:从“愚公移山”到“细胞分裂”
c语言·c++·笔记·算法
七号驿栈3 分钟前
深入理解 MAC 消息认证算法:原理、分类与应用
算法
bnmoel6 分钟前
数据结构深度剖析二叉树・下篇:链式结构的实现 ,遍历方法全解析
c语言·数据结构·算法·二叉树·
豆瓣鸡19 分钟前
算法日记 - Day5
java·算法
Accerlator25 分钟前
RAG 评测
算法
码哥DFS30 分钟前
算法练习day1-备战2027届秋招
前端·javascript·数据结构·算法
wabs6661 小时前
关于图论【卡码网108.多余的边的思考】
数据结构·算法·图论
冻柠檬飞冰走茶1 小时前
PTA基础编程题目集 7-37 整数分解为若干项之和(C语言实现)
c语言·开发语言·数据结构·算法
运维大师2 小时前
【K8S 运维实战】31-Helm包管理
运维·算法·kubernetes
烬羽2 小时前
一个队列,怎么让滑动窗口从 O(nk) 变 O(n)?单调队列彻底搞懂
javascript·数据结构·算法