青蛙跳台阶
描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
数据范围:0≤n≤40
要求:时间复杂度: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;
}
}