1. 程式人生 > >(劍指offer)青蛙跳臺階

(劍指offer)青蛙跳臺階

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

/**
* 迴圈實現,程式碼的時間效率更好
*/
public class Solution {
    public int JumpFloor(int target) {
        int count = 0;
        int first = 1;
        int second = 2;
        if (target == 0) {
            return 0;
        } else if (target == 1) {
            return
1; } else if (target == 2) { return 2; } int i = 3; // 迴圈實現 while (i <= target) { count = first + second; first = second; second = count; i++; } return count; } }
/**
* 遞迴實現,程式碼較簡潔
*/
public class Solution { public int JumpFloor(int target) { if(target <= 2) { return target; } else { return JumpFloor(target-1)+JumpFloor(target-2); } } }

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

/**
* 迴圈實現,程式碼的時間效率更好
*/
public class Solution { public int JumpFloorII(int target) { if (target == 0) { return 0; } if (target == 1) { return 1; } int count = 1; int i = 2; // 迴圈實現 while (i <= target) { count = count *2; i++; } return count; } }
/**
* 遞迴實現,程式碼較簡潔
*/
public class Solution {
    public int JumpFloorII(int target) {
        if(target <= 2) {
            return target;
        }
        else {
            return JumpFloorII(target - 1) * 2;
        }
    }
}