当前位置: 首页 > 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/news/308898.html

相关文章:

  • 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通讯
  • 深度学习中实验、观察与思考的方法与技巧
  • JavaScript:驱动现代Web应用的关键引擎及其与HTML/CSS的集成
  • 数模原理精解【11】
  • el-table 如何实现行列转置?
  • C#读取应用配置的简单类
  • 软件测试工程师面试整理-常见面试问题
  • 后端Controller获取成功,但是前端报错404
  • etcd入门指南:分布式事务、分布式锁及核心API详解
  • 企业开发时,会使用sqlalchedmy来构建数据库 结构吗? 还是说直接写SQL 语句比较多?
  • 断电重启之后服务器都有哪些服务需要重启