剑指Offer题解

变态跳台阶

2018-07-16  本文已影响11人  lvlvforever

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

和跳台阶相比,这种确实很变态。依然是找规律。
f(1) = 1;
f(2) = 2;
f(3) = f(2)+f(1) + 1;
f(4) = f(3)+f(2)+f(1)+1;
....
f(n) = 2 * f(n-1)
最后发现得到的结果很简单。

  public int JumpFloorII(int target) {
        int first = 1;
        int third = 0;
        if(target == 1){
            return first;
        }
        for(int i = 2; i <= target; i++){
             third = first * 2;
             first = third;
        }
        return third;
    }
上一篇 下一篇

猜你喜欢

热点阅读