题解 | #跳台阶#

跳台阶

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;

        }
    }
}
全部评论

相关推荐

09-27 00:29
东北大学 Java
伟大的麻辣烫:查看图片
阿里巴巴稳定性 75人发布 投递阿里巴巴等公司10个岗位
点赞 评论 收藏
分享
我即大橘:耐泡王
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务