描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

数据范围:0 \leq n \leq 400≤n≤40
要求:时间复杂度:O(n)O(n) ,空间复杂度: O(1)O(1)

方法1:函数递归

public class Solution {
public int jumpFloor(int target) {
if(target == 1 || target == 0) {
return 1;
}
return jumpFloor(target - 1) + jumpFloor(target - 2);
}
}

方法2:自下而上,使用数组

public class Solution {
public int jumpFloor(int target) {
int[] res = new int[target + 1];
res[0] = 1;
res[1] = 1;
for(int i = 2; i <= target; i++) {
res[i] = res[i - 1] + res[i - 2];
}
return res[target];
}
}

注意:数组名起为res/f都行

方法3:变量空间的优化

public class Solution {
public int jumpFloor(int target) {
int p = 1, q = 1;
//和自下而上的方法使用相同的循环结构
for(int i = 2; i <= target; i++) {
int temp = p;
p = p + q;
q = temp;
}
return p;
}
}

注意:可以和自下而上基于数组的方法使用相同的循环结构

最新文章

  1. 【面试】输出&quot;蛇形&quot;矩阵
  2. mysql 导入导出方法。
  3. H5移动前端性能优化
  4. hdu2255 二分图最大权配KM
  5. c# SqlHelper Class
  6. [MFC] 如何更改MFC程序图标
  7. 【IOS基础知识】NSTimer定时器使用
  8. raspberry pi vpn
  9. 第一次知道Winform的窗体之间传值怎么写,分享给小白~
  10. linux在文件打包和压缩
  11. 精益IT组织与分享式领导
  12. Linux驱动手动绑定和解绑定
  13. C++学习建议
  14. Android 开发 SharedPreferences数据会话类模板
  15. 让photoshop cc 支持 webp格式
  16. ASP.NET MVC多语言 仿微软网站效果(转)
  17. linux内核编程helloworld(中级)
  18. Mysql 之权限体系
  19. 9.27 h5日记
  20. (NOI2014)(bzoj3669)魔法森林

热门文章

  1. Deployment必须包含资源对象
  2. 使用filebeat收集k8s上pod里的容器日志配置文件模板
  3. RabbitMQ各个端口被占用的进程说明
  4. rollup汇总作业-合并索引
  5. rocketmq 4.x 双主双从同步读写
  6. 30分钟掌握 Webpack
  7. C语言指针笔记01
  8. vue基础之MV*和它们之间的不同
  9. 带有pwn环境的Ubuntu22.04快速安装
  10. KTV和泛型(3)