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

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.mrgr.cn/news/27966.html

相关文章:

  • shell bash---类似数组类型
  • Flink新版Source接口源码解析
  • 设计模式学习
  • 《硬件架构的艺术》笔记(二):时钟与复位
  • STM32设计学生宿舍监测控制系统
  • Go语言中的复合类型赋值:简化你的初始化过程
  • 【JS逆向分析】某药品网站价格(Price)解密
  • NFS在docker环境下无法写入文件的问题解决、NFS文件共享查看挂载客户端列表、mount监控及使用script命令保存屏幕终端输出内容
  • TS.38-2
  • 基于yolov8的无人机检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • THREE.js:网页上的3D世界构建者
  • AIGC文本生成
  • Luogu P1874 快速求和 (线性DP)
  • 【MySQL学习】基础指令全解:构建你的数据库技能
  • MySQL之约束
  • ArrayList 源码解析
  • 1.2 交换技术
  • Java contains()方法
  • 电基础理解
  • 轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数
  • Linux设备驱动开发:从基础理论到实战经验的全面解析
  • 网络安全学习(二)初识kali
  • 经验——IMX6UL的uboot无法ping主机或Ubuntu
  • 每日一问:C++ 中重写和重载的区别
  • 精简实用!一分钟搭建文件管理服务!
  • 企业竞争文化数据,词频分析(2007-2022年)