当前位置: 首页 > article >正文

C++速通LeetCode简单第17题-爬楼梯

思路要点:将问题转化为求斐波那契数列的第n项,然后迭代。

思路分析:最后一次爬的阶数不是1就是2,假设爬n阶的方法数是f(n),假设最后一次爬1阶,那么爬前面的 n-1阶的方法数是f(n-1);假设最后一次爬2阶,那么爬前面n-1阶的方法数是f(n-2)。所以可以得到:f(n) = f(n-1) + f(n-2),也就是斐波那契数列,只是f(1) = 1,f(2) = 2。这样递推下去f(3) = 3, f(4) = 5......

class Solution {
public:
    int p = 1;
    int q = 2;
    int r = 0;
    int climbStairs(int n) {
        if(n == 1) r = p;
        if(n == 2) r = q;
        else
        {
            for(int i = 0;i < n-2;i++)
            {
                r = p + q;
                p = q;
                q = r;
            }
        }
        return r;
    }
};

 


http://www.kler.cn/a/308898.html

相关文章:

  • 自动化工具 Gulp
  • 【2024软考架构案例题】你知道 Es 的几种分词器吗?Standard、Simple、WhiteSpace、Keyword 四种分词器你知道吗?
  • Leecode热题100-35.搜索插入位置
  • 【MySQL】MySQL函数之JSON_EXTRACT
  • flink sql + kafka + mysql 如何构建实时数仓
  • 2019年下半年试题二:论软件系统架构评估及其应用
  • PostgreSQL维护——解决索引膨胀和数据死行
  • 运维的基本概念:服务器和网络基础知识
  • 瑞星微RK芯片的Buildroot构建系统镜像
  • 【Gateway】Gateway Filter Factories
  • Visual Studio 2019/2022 IntelliCode(AI辅助IntelliSense)功能介绍
  • 【SpringBoot】调度和执行定时任务--Spring Task(超详细)
  • 数据结构 - 树与二叉树
  • [强化你的LangChain工具创建技能:从基础到进阶]
  • C语言 | Leetcode C语言题解之第413题等差数列划分
  • c语言题目猜凶手问题
  • Vue2中父子组件通信双向绑定
  • 【Java】【力扣】83.删除排序链表中的重复元素
  • TensorRT-LLM——优化大型语言模型推理以实现最大性能的综合指南
  • react18基础教程系列-- 框架基础理论知识mvc/jsx/createRoot
  • 预训练蛋白质语言模型ESM-2保姆级使用教程
  • C++设计模式(更新中)
  • 数据结构:(OJ141)环形列表
  • 李宏毅2023机器学习HW15-Few-shot Classification
  • 部分动态铜皮的孤岛无法删除。报错
  • Linux下的CAN通讯