1. 程式人生 > 實用技巧 >牛客題霸NC68跳臺階Java題解

牛客題霸NC68跳臺階Java題解

牛客題霸NC68跳臺階Java題解

https://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4?tpId=117&&tqId=34990&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking

方法1:動態規劃
解題思路:此題與斐波那契數列相似。
當target<=1時,返回1,當target==2時,返回2,當target>=3時,返回前兩項和。

public class Solution {
    public int
JumpFloor(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); } }