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

(070)爬楼梯

思路:一次爬一个或者一次爬两个楼梯,终止条件,即是当n=1或n=2时,完成操作,当n>2时,总方法就等于一次爬一个楼梯的方法数加上一次爬两个楼梯的方法数。

解法一:递归解法

 if(n == 1)return 1;if(n == 2)return 2;return climbStairs(n-1) + climbStairs(n-2);
}

值得一提的是,虽然它简单,但是它的时间复杂度超过n^{2},超出时间限制

解法一的不可行性主要是重复计算引起的,避免或减少重复计算实现代码。使用hashmap保存已求解的值,此时的时间复杂度为O(n)。

解法二:hashmap(Java)

class Solution
{private Map<Integer,Integer> storeMap = new HashMap<>();public int climbStairs(int n){if(n == 1)return 1;if(n == 2)return 2;if(null != storeMap.get(n))return storeMap.get(n);else{int result = climbStairs(n - 1) + climbStairs(n - 2);storeMap.put(n, result);return result;}}
}

解法三:循环

int climbStairs(int n) {//循环if(n==1)return 1;if(n==2)return 2;int result = 0;int pre = 1;int Prepre = 2;for(int i = 3; i <= n; ++i){result = pre + Prepre;pre = Prepre;Prepre = result;}return result;
}

http://www.lryc.cn/news/412563.html

相关文章:

  • el-table 表格序号列前端实现递增,切换分页不从头开始
  • NSSCTF-Web题目27(Nginx漏洞、php伪协议、php解析绕过)
  • 分割损失:Dice vs. IoU
  • SpringBoot整合Juint,ssm框架
  • 基于supervisor制作基于环境变量配置的redis
  • 动态规划part01 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯
  • CSS实现图片边框酷炫效果
  • 遇到 MySQL 死锁问题如何解决?
  • Pyinstaller打包OSError: could not get source code【终极解决】
  • 【计算机毕业设计】707高校宿舍管理系统
  • 从C++看C#托管内存与非托管内存
  • Linux进程间通信--IPC之无名管道
  • Oracle19c数据库system密码锁定
  • java之hashCode() 方法和 equals(Object obj) 方法之间的关系
  • 首届「中国可观测日」圆满落幕
  • [Docker][Docker NetWork][下]详细讲解
  • 安卓系统在未来如何更好地解决隐私保护与数据安全的问题?
  • MySQL innodb单表上限一般多少
  • 更小、更安全、更透明:Google发布的Gemma推动负责任AI的进步
  • 基于Django框架的医疗耗材管理系统的设计实现-计算机毕设定制-附项目源码(可白嫖)48999
  • 物联网协议篇(1):modbus tcp和modbusRTU的区别是什么?
  • JVM系列 | 对象的消亡——HotSpot的设计细节
  • vue 运行或打包过程报错 JavaScript heap out of memory(内存溢出)
  • git分支提交方法
  • 从微架构到向量化--CPU性能优化指北
  • 声声入耳,事事如意 爱可声「如意」助听器即将上市!
  • 生物实验室设备文件采集如何才能质量和效率双管齐下?
  • Framework源码整编、单编、烧录过程
  • TypeScript类型断言
  • Mallet:一款针对任意协议的安全拦截代理工具