public class Solution {
public int JumpFloor(int target) {
if (target>=1&&target<=2) {
return target;
}else{
return JumpFloor(target-1)+JumpFloor(target-2);
}
}
}
public class Solution {
public int JumpFloor(int target) {
if (target>=1&&target<=2) {
return target;
}
int a= 1,b=2;
int sum = b;
for (int i= 3;i<= target;i++){
sum = a+b;
a=b;
b= sum;
}
return sum;
// }else{
// return JumpFloor(target-1)+JumpFloor(target-2);
// }
}
}
斐波那契数列
解法1:直接递归,有很多重复结点,计算量特别大。
解法二:自底向上计算,先计算f(0)和f(1),将计算过的值保存下来用于下一次的计算