青蛙跳台阶

描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
 
数据范围:0n40
要求:时间复杂度:O(n)O(n) ,空间复杂度: O(1)O(1)
 
方式一
public class Solution {
    public int jumpFloor(int target) {
        if(target <= 3) return target;
        return jumpFloor(target-1) + jumpFloor(target-2);
    }
}

方式二

public class Solution {
    public int jumpFloor(int target) {
       int[] arr = new int[target+2];
       for(int i=0; i <= target; i++){
           if(i <= 3)
               arr[i] = i;
           else
               arr[i] = arr[i-1] + arr[i-2];
       }
        return arr[target];
    }
}

方式三

public class Solution {
    public int jumpFloor(int target) {
        if(target < 3) return target;
        int t_1 = 1;
        int t_2 = 2;
        for(int i=3; i <= target; i++){
            t_2 = t_1 + t_2;
            t_1 = t_2 - t_1;
        }
        return t_2;
    }
}
posted @ 2021-12-15 13:35  始是逍遥人  阅读(41)  评论(0编辑  收藏  举报