剑指Offer-跳台阶

跳台阶

题目

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

思路

1.递归
2.和斐波那契数列一样->暂存。

代码

        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);
    }

    public int JumpFloor_ii(int target){
        if(target<=0){
            return -1;
        }
        if(target==1){
            return 1;
        }
        if (target==2){
            return 2;
        }

        int first = 1; int second = 2; int third = 0;
        for (int i=3;i<=target;i++){
            third = first + second;
            first = second;
            second = third;
        }
        return third;
    }
}
0%