[剑指offer][Java]变态跳台阶

2019-06-19  本文已影响0人  Maxinxx

题目

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

程序核心思想

跟跳台阶类似。

台阶数 跳法数 解释
0 1
1 1 从0级跳一级
2 2 从0级跳两级,从1级跳1级
3 4 从0级跳三级,从1级跳两级,从2级跳一级
4 8 从0级跳四级,从1级跳三级,从2级跳两级,从3级跳一级

以此类推,青蛙跳上n级的办法,是从0级跳n级,从1级跳n-1级,...,从n-1级跳一级,即跳上n级台阶的跳法数等于之前所有台阶跳法数的和,又发现规律,n级台阶的跳法数等于n-1级台阶跳法数的二倍。

Tips

代码

public class Solution {
    public int JumpFloorII(int target) {
        if(target == 1){
            return 1;
        }else{
            return 2 * JumpFloorII(target - 1);
        }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读