题解 | #跳台阶#

跳台阶

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;

        }
    }
}
全部评论

相关推荐

Twilight_m...:经典我朋友XXXX起手,这是那种经典的不知道目前行情搁那儿胡编乱造瞎指导的中年人,不用理这种**
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务