剑指Offer_08_跳台阶
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解题思路
这是一个动态规划的题。对于n个台阶,可以是n-1个台阶跳一步得到,也可以是n-2步台阶跳两步得到。因此有递归式 f(n) = f(n-1) + f(n-2);
因此可以使用两种方式递归和循环来实现。
实现
- 循环
public class Solution {public int JumpFloor(int target) {if(target==1) return 1;if(target==2) return 2;int fn_1 = 2, fn_2 = 1;int fn = 0;for(int i = 3; i <= target; i++){fn = fn_1 + fn_2;fn_2 = fn_1;fn_1 = fn;}return fn;}
}
2. 递归
public class Solution {public int JumpFloor(int target) {if (target == 0) return 0;int[] dp = new int[target + 1];for (int i = 0 ; i < target + 1; i ++){dp[i] = -1;}dp[0] = 1;dp[1] = 1;return jumpFloor(target, dp);}private int jumpFloor(int n, int[] dp) {if (dp[n] >= 0) return dp[n];else{return dp[n] = fibonacci(n - 1, dp) + fibonacci(n - 2, dp);}}
}
转载于:https://www.cnblogs.com/ggmfengyangdi/p/5763736.html
剑指Offer_08_跳台阶相关推荐
- 剑指offer——跳台阶变态跳台阶矩形覆盖
剑指offer--跳台阶&&变态跳台阶&&矩形覆盖 1.跳台阶 哈哈哈,递归题,一遍过 class Solution { public:int jumpFloor(in ...
- [剑指offer] 跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 还是斐波那契: class Solution { public:int jumpFloor(int ...
- python剑指offer跳台阶_【剑指offer】跳台阶I和II(Javapython)
关于本题,前提是n个台阶会有一次n阶的跳法.分析如下: f(1) = 1 f(2) = f(2-1) + f(2-2) //f(2-2) 表示2阶一次跳2阶的次数. f(3) = f(3-1) + f ...
- 剑指offer 跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 解决方案: 这个题目是菲波那切数列的变形:这儿使用递归. public class Solutio ...
- 剑指Offer——跳台阶
1.题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 2.代码实现(和斐波那契数列是一模一样的) 1 public in ...
- 剑指offer-8 跳台阶
题目要求:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 解题思路 推导下公式 跳法次数为 1 2 3 5 8 ... f( ...
- 剑指offer跳楼梯
//一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). //递归 class Solution1 {public:int jumpF ...
- [剑指Offer]斐波那契数列、跳台阶、兔子数量问题(递归、非递归)(Java)
剑指Offer题目 斐波那契数列 题目描述 [剑指Offer 7]大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). [剑指Offer 8]一只青蛙 ...
- 剑指offer:跳台阶 python 实现
题目 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 解题思路 草稿上想了想,这道题跟剑指offer: 斐波那契数列 ...
最新文章
- UVA1603Square Destroyer破坏正方形
- 数据结构实验之排序一:一趟快排
- mysql ndb还原数据库_ndb_restore恢复出错
- 诗歌的创作、诗词总结与应用
- 骚年,还在为歌荒发愁吗?python教你爬取网易云热门歌单
- nginx + gunicorn + django 2.0 踩坑
- 扩展php-bcmath,centos安装PHP扩展(bcmath)
- windows虚拟显示器SDK开发和提供
- suse 12 sp5安装bug
- 6个实例电路,详解雷击浪涌的防护
- 制造业数字化转型存在哪些问题
- One Drive 回收站文件太多时无法清空回收站解决办法
- 百度搜索引擎结果网址参数搜索历史记录(rsv_sug)
- java flappy bird_Java实例---flappy-bird实例解析
- 【解救ROS】clion2022.2.2的安装永久使用教程
- STM32开发板搭建开发环境之安装篇
- 华为设备配置策略路由
- 金砖国家智慧城市建设案例
- 扫雷游戏(java实现)java小程序
- Oracle笔记本(1102)
热门文章
- 关于加载 下拉 刷新,和加载更多,
- 《C#与.NET3.5高级程序设计(第4版)》笔记10
- 自动延时跳转到指定页面JS脚本代码
- ubuntu16.04 安装CAJViewer 以及 安装wine /deepin-wine 图标异常的解决
- linux 编译器错误,linux – GHCi – Haskell编译器错误 – /home/user/.ghci归其他人所有,IGNORING...
- 选择问题 and 字谜游戏问题
- LVS的DR模型的实现
- 基于数组的无锁队列(译)
- 为什么平衡对游戏数值策划如此重要
- CMake手册详解 (十二)