【追求进步】跳台阶
2016-03-18 11:23
253 查看
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。总之同样也是斐波那契数列
首先我们考虑最简单的情况。如果只有1个台阶,那显然只有一种跳法。如果有2级台阶,那就有两种跳的方法了。一种是分两次跳,每次跳1级;另外一种就是一次跳2级。
接着我们再来讨论一般情况。我们把n级台阶时的跳法看成是n的函数,记为f(n).当n>2时,第一次跳的时候就有两种不同的选择:一是第一次 只跳1级,此时跳法数目等于后面剩下的n-1级台阶的跳法数目,即为f(n-1);另外一种选择是第一次跳2级,此时跳法数就是剩下的n-2级台阶的跳法数,即为f(n-2)。因此n级台阶的不同跳法数的总数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 fn1=1,fn2=2; int currentnum=0; for(int i=3;i<=target;i++){ currentnum=fn1+fn2; fn1=fn2; fn2=currentnum; } return currentnum; } }
相关文章推荐
- hive.exec.parallel参数
- PICT工具
- day8-异常
- linux centos安装编译phantomjs 2.0的方法
- 软件测试(三)——Junit、Hamcrest、Eclemma的安装和使用
- centOS下安装node4.x
- github下Permission denied (publickey)问题.
- 虚拟机关机卡住
- 简述NotificationCenter、KVC、KVO、Delegate?它们之间的区别!!!
- lintcode 旋转数组的最小数字
- JVM常见配置汇总
- (WIFI)远程控制基本流程
- Python 类的创建
- java-io-FileReader和FileWriter类
- Lab1 of ST
- python rabbitmq
- 找出list中的不同元素、删除两个list中相同的对象
- wamp默认配置修改
- c++打字游戏
- c++打字游戏