题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
个人思路解法:
就是改变版斐波那契数列,太简单了
/**
* <p>@author Jay</p>
* <p>@date 2020/8/12 9:24</p>
* <p>@Description:</p>
* 题目描述
* 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
* 稍作改变的斐波那契。F(0)=0,F(1)=1,F(2)=2, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)
*/
public class Solution4 {
public int JumpFloor(int target) {
if (target<3)
return target;
int sum=2,one=1;
for (int i=3;i<=target;i++){
sum+=one;
one=sum-one;
}
return sum;
}
}
复杂度
时间复杂度:O(n)
空间复杂度:O(1)