首页 > 其他 > 详细

A题之变态青蛙跳

时间:2018-02-14 17:02:33      阅读:174      评论:0      收藏:0      [点我收藏+]
一仅仅青蛙一次能够跳上1级台阶,也能够跳上2级……它也能够跳上n级。

求该青蛙跳上一个n级的台阶总共同拥有多少种跳法。


分析:
这是一个斐波拉契数列的引申问题,先来看看斐波拉契数列:
n<=1, ? ?f(n)=1;
n>=2, ? ?f(n)=f(n-1)+f(n-2);
假设这个题变一下“一仅仅青蛙一次能够跳上1级台阶。也能够跳上2级。求该青蛙跳上一个n级的台阶总共同拥有多少种跳法。”就成了典型的斐波拉契数列问题了。

回过头来看这个题,貌似没有头绪。怎么办,採用最笨的方法。穷举:
n<=1, ? ? f(n)=1;
n=2, ? ? ? ?f(2)=2;
n=3, ? ? ? ?f(3)=4; ? ?
第一次走一步,2种。第一次走俩步,1种。一次走三步。1种;
n=4, ? ? ? ?f(4)=8; ? ?
第一次走一步,4种。第一次走俩步,2种;第一次走三步。1种。一次走四步,1种。
是不是看到规律了:
f(n)=f(n-1)+f(n-2)+.....+f(1)+f(0)=2f(n-1)

上Java代码:

public class Solution {
? ? public int JumpFloorII(int target) {
? ? ? if(target<=1)
? ? ? ? ? ? return 1;
? ? ? ? else
? ? ? ? ? ? return 2*JumpFloorII(target-1);
? ? }
}

A题之变态青蛙跳

原文:https://www.cnblogs.com/zhchoutai/p/8448507.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!