码农小汪-剑指Offer之2- 变态跳台阶
2016-03-30 23:31
302 查看
之前写在印象笔记的复制过来
青蛙一次性跳上n个台阶的跳法数为1,Fib(0)=1;
当n=1,一种跳法Fib(1-1)=1;
当n=2,Fiber(2)=Fiber(2-1)+Fiber(2-2);
当n=3,Fiber(3)=Fib(3-1)+Fib(3-2)+Fib(3-3);
当n=n时,Fiber(n)=Fib(n-1)+Fib(n-2)+….Fib(0)
又因Fiber(n-1)=Fib(n-2)+Fib(n-3)……Fib(0);
两者相减,Fiber(n)=2*Fiber(n-1)
如此科学的解决问题,不错哦!
package JianzhiOffer;
/**
* 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。
* 求该青蛙跳上一个n级的台阶总共有多少种跳法。
* @author JetWang
*
*/
public class Sloution2 {
}
题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。题解:
用Fiber(n)表示青蛙跳上n级台阶的跳法数,青蛙一次性跳上n个台阶的跳法数为1,Fib(0)=1;
当n=1,一种跳法Fib(1-1)=1;
当n=2,Fiber(2)=Fiber(2-1)+Fiber(2-2);
当n=3,Fiber(3)=Fib(3-1)+Fib(3-2)+Fib(3-3);
当n=n时,Fiber(n)=Fib(n-1)+Fib(n-2)+….Fib(0)
又因Fiber(n-1)=Fib(n-2)+Fib(n-3)……Fib(0);
两者相减,Fiber(n)=2*Fiber(n-1)
如此科学的解决问题,不错哦!
package JianzhiOffer;
/**
* 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。
* 求该青蛙跳上一个n级的台阶总共有多少种跳法。
* @author JetWang
*
*/
public class Sloution2 {
public int JumpFloorII(int target) { if( target<0){ return -1; }else if(target ==1){ return 1; }else{ return 2*JumpFloorII(target -1); } } public static void main(String[] args) { // TODO Auto-generated method stub Sloution2 testSloution2=new Sloution2(); System. out.println(testSloution2 .JumpFloorII(3)); }
}
相关文章推荐
- 面试感悟:3年工作经验程序员应有的技能
- 码农小汪-剑指Offer之1- 跳台阶
- 码农小汪-剑指Offer之22-二叉树中和为某一值的路径
- 程序员编程艺术:面试和算法心得
- 阿里巴巴暑期实习面试经验
- 程序员老梗
- 2016面试——腾讯、蚂蚁金服、蘑菇街
- 常见sql面试题
- Java程序员从笨鸟到菜鸟之(十一)多线程讲解
- 【转载】程序员有哪些电脑技能让外行感到神奇?
- 剑指offer面试题4:替换字符串中的空格
- 码农小汪-剑指Offer之21-二叉搜索树的后序遍历序列
- 阿里巴巴测试开发工程师面试记录
- Android 程序员计算器 开发记录-Git版本控制初步接触
- OC 面试问题汇总
- 面试的一些小经验
- 剑指offer-面试题19:二叉树的镜像
- 面试题70:二叉搜索树第K大的结点*
- 码农小汪-剑指Offer之20-从上往下打印二叉树
- PHP中提问频率最高的面试题和答案