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

!力扣70. 爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

1. 递归(超时)

class Solution {
public:int climbStairs(int n) {if(n==1){return 1;}if(n==2){return 2;}return climbStairs(n-1)+climbStairs(n-2);}
};

2. 迭代(需要开大小为n+1的数组)

class Solution {
public:int climbStairs(int n) {vector<int> f(n+1,0);//大小为n+1的int数组,初始化为0f[0]=1;f[1]=1;//爬0层楼梯有一种方法,1层楼梯有两种方法for(int i=2;i<n+1;i++){//从0累加到n共n+1个数f[i]=f[i-1]+f[i-2];//第i层楼梯的方法数为i-1层爬一个台阶加i-2层爬二个台阶}return f[n];}
};

3. 滚动数组

 f[i]=f[i-1]+f[i-2]第 i 层状态只与第i-1层和i-2层有关,因此只需两个变量记录之前的状态即可。

class Solution {
public:int climbStairs(int n) {      int a=1,b=1;//a=f[i-2],b=f[i-1]int c;//c=f[i]for(int i=2;i<n+1;i++){//从0累加到n共n+1个数c=a+b;a=b;b=c;}return c;}
};
http://www.lryc.cn/news/367653.html

相关文章:

  • Spring boot+vue前后端分离
  • Python基础总结之列表转字符串
  • 二分【1】二分查找框架 查找指定元素
  • Python 中如何使用 lambda 函数
  • 关于焊点检测(SJ-BIST)模块实现
  • 关于修改Python中pip默认安装路径的终极方法
  • android集成百度文心一言实现对话功能,实战项目讲解,人人都能拥有一款ai应用
  • 事件总线vueEvent
  • 设计模式之观察者模式ObserverPattern(十一)
  • JavaScript 编程语言【 数据类型】日期和时间
  • RabbitMQ简单使用方法,以异步处理日志为例:
  • 二分+模拟,CF1461D - Divide and Summarize
  • C#操作MySQL从入门到精通(16)——使用子查询
  • 【vue实战项目】通用管理系统:图表功能
  • 第99天:权限提升-数据库提权口令获取MYSQLMSSQLOracleMSF
  • Java 环境配置 -- Java 语言的安装、配置、编译与运行
  • 升级最新版openssh-9.7p1及openssl-1.1.1h详细步骤及常见问题总结
  • 学习使用 Frida 过程中出现的问题
  • Java实现简单词法、语法分析器
  • Python实现半双工的实时通信SSE(Server-Sent Events)
  • python中的解包操作(*和**)
  • Lua 时间工具类
  • Qt——Qt网络编程之TCP通信客户端的实现(使用QTcpSocket实现一个TCP客户端例程)
  • Qt信号槽与函数直接调用性能对比
  • Python中的异常处理:try-except-finally详解与自定义异常类
  • vscode软件上安装 Fitten Code插件及使用
  • 人工智能小作业
  • 程序员搞副业一些会用到的工具
  • k8s更改master节点IP
  • c++【入门】已知一个圆的半径,求解该圆的面积和周长?