牛客題霸NC68跳臺階Java題解
阿新 • • 發佈:2020-11-25
牛客題霸NC68跳臺階Java題解
方法1:動態規劃
解題思路:此題與斐波那契數列相似。
當target<=1時,返回1,當target==2時,返回2,當target>=3時,返回前兩項和。
public class Solution { public intJumpFloor(int target) { if(target <= 1){ return 1; } if(target == 2){ return 2; } int[] res = new int[target+1]; //用來儲存每個target對應的跳法。 res[0] = 1; res[1] = 1; res[2] = 2; for(int i = 3;i<=target;i++){ res[i]= res[i-1]+res[i-2]; } return res[target]; } }
方法2:遞迴
解題思路:當target<=1時,返回1,當target>=2時,返回 return JumpFloor(target-1)+JumpFloor(target-2)。
public class Solution { public int JumpFloor(int target) { if(target <= 1){ return 1; }return JumpFloor(target-1)+JumpFloor(target-2); } }