变态跳台阶(剑指Offer)

来源:互联网 发布:linux 怎么引导win 7 编辑:程序博客网 时间:2024/06/06 04:19

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

解法1:

public class Solution {    public int JumpFloorII(int target) {        if(target==0)            return 0;        if(target==1)             return 1;        else            return 2*JumpFloorII(target-1);        }}
这个题可以推导一下:

f(2)=f(0)+f(1);

f(3)=f(2)+f(1)+f(0)=2*f(2);

......可推导 f(n)=2*f(n-1);

解法2:

public class Solution {    public int JumpFloorII(int target) {       if(target==0) return 0;       return (int)Math.pow(2,target-1);    }}
每个台阶都有跳或者不跳



原创粉丝点击