题解 | #跳台阶#
跳台阶
https://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4
总结:
可以使用两种方法递归和动态规划,其中动态规划避免了大量重复计算,时间复杂度更优
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; } } }