> 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
数据范围:1 \leq n \leq 401≤n≤40
要求:时间复杂度:O(n)O(n) ,空间复杂度: O(1)O(1)
这里是引用
public class Solution {
public int jumpFloor(int target) {
//斐波那契数列变形
//f(n) = f(n - 1) + f(n - 2);
if(target == 1) return 1;
if(target == 2) return 2;
//需要三个数
int first = 1;//n - 2
int second = 2;//n - 1;
int sum = 0;//n
for(int i = 3; i <= target ; i ++){
sum = first + second;
first = second;// n -2 = n - 1
second = sum;// n - 1 = n
}
return sum;
}