劍指Offer_編程題_跳臺階、變態跳臺階

跳臺階

題目描述

一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。

AC代碼

public class Solution {
    public int JumpFloor(int target) {
        if(target==1)
            return 1;
        else if(target==2)
            return 2;
        else if(target==3)
            return 3;
        else 
            return JumpFloor(target-1)+JumpFloor(target-2);

    }
}

題目分析

思路:跳n級臺階相當於n-1和n-2級臺階的和
原因:n級臺階就相當於n-1級再跳一次一階的和n-2級再跳一次2階的



變態跳臺階

題目描述

一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。

AC代碼

public class Solution {
    public int JumpFloorII(int target) {
         return (int) Math.pow(2,target-1);
    }
}

題目分析

f(n)=f(n-1)+f(n-2)+…+f(1)
f(n-1)=f(n-2)+…f(1)
得:f(n)=2*f(n-1)
推導出公式得出2的n-1次方

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章