总结:
可以使用两种方法递归和动态规划,其中动态规划避免了大量重复计算,时间复杂度更优
public class Solution {
public int jumpFloor(int target) {
//方法1递归(时间复杂度2^n,内部有很多重复计算)
// if(target<=1)
// return 1;
// else{
// return jumpFloor(target-1)+jumpFloor(target-2);
// }
//方法二(动态规划,从下往上,将计算需要用到的值保存下来,避免重复计算)
if(target<=1)
return 1;
else{
int f1=1,f2=1;
int f=0;
for(int i=2;i<=target;i++){
f = f1+f2;
f1 = f2;
f2 = f;
}
return f;
}
}
}
京公网安备 11010502036488号