剑指Offer_08_跳台阶
来源:互联网 发布:淘宝运营做什么的 编辑:程序博客网 时间:2024/06/05 04:15
题目描述
一只青蛙一次可以跳上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); } }}
0 0
- 剑指Offer_08_跳台阶
- 剑指:跳台阶与变态跳台阶
- [剑指offer]跳台阶&变态跳台
- 剑指offer-跳台阶
- 【剑指offer】跳台阶
- 剑指offer--跳台阶
- 《剑指offer》跳台阶
- 剑指Offer-跳台阶
- 《剑指offer》跳台阶
- 剑指 offer:跳台阶
- 【剑指Offer】跳台阶
- 剑指offer8 跳台阶
- 剑指offer 跳台阶
- 剑指offer--跳台阶
- 剑指offer 跳台阶
- 《剑指offer》跳台阶
- 剑指offer-跳台阶
- 剑指offer----跳台阶
- Android不透明度16进制值
- IOS开发UI篇--仿射变换(CGAffineTransform)使用小结
- 虚拟机中VMware tools工具的安装
- Javascript异步编程的4种方法(阮一峰)
- pod安装不成功===的解决方法
- 剑指Offer_08_跳台阶
- 从这里开始
- android获取缓存大小并清理缓存
- 采用SHAA对密码进行加密
- 2016年7月
- Xshell无法连接Ubuntu的解决办法
- 推理集 —— 心理
- 关于spring”通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明“的错误
- javaweb学习总结(五)——Servlet开发(一)