劍指offer——變態青蛙跳

題目

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

規律:

一級臺階:1 = 2^0;
二級臺階:2 = 2^1;
三級臺階:4 = 2^2;
四級臺階:8 = 2^3

n級臺階:count = 2^(n-1)

代碼實現

public class Solution {

    /**
     * 運行時間:17ms
     * 佔用內存:9172k
     * @param target
     * @return
     */
    public int JumpFloorII(int target) {
        return  (int)Math.pow(2,target-1);
    }
}

遞歸實現

public class Solution {
    /**
     * 運行時間:17ms
     * 佔用內存:9460k
     * @param target
     * @return
     */
    public int JumpFloorII(int target) {
                if (target == 0)
            return 0;
        else if (target>0){
            int value = 1;
            int count = 1;
            while (count<target){
                value = 2*value;
                count++;
            }
            return value;
        }
        return 0;
    }
}

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