剑指Offer——跳台阶

2019-10-12  本文已影响0人  瞬铭

简单跳台阶

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

 public int JumpFloor(int target) {
        if (target == 0) {
            return 1;
        }

        if (target == 1) {
            return 1;
        }

//        if (target == 2) {
//            return 2;
//        }

        return JumpFloor(target - 1) + JumpFloor(target - 2);
    }

复杂跳台阶

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

 public int JumpFloorII(int target) {
        int[] num = new int[target+1];
        if(target == 1){
            return 1;
        }

        if(target == 0 ){
            return 1;
        }
        num[1] = 1;

        int res = 0;

        for (int i = 2; i <= target; i++) {
            for (int j = 1; j < i; j++) {
                num[i] += num[j];
            }
            num[i] = num[i] + 1;
        }
        return num[target];
    }

上一篇 下一篇

猜你喜欢

热点阅读