0
点赞
收藏
分享

微信扫一扫

力扣198 打家劫舍

weipeng2k 2022-02-19 阅读 82
public int rob(int[] nums){
        if(nums.length==0) return 0;
        int[] dp=new int[nums.length+1];
        dp[0]=0;
        dp[1]=nums[0];
        for(int i=2;i<=nums.length;i++){
            dp[i]=Math.max(dp[i-1],dp[i-2]+nums[i-1]);
        }
        return dp[nums.length];
    }

 优化代码:

public int rob(int[] nums){
        if(nums.length==0) return 0;
        int pre=0;
        int cur=0;
        //这个循环其实是从i=0开始的,所以cur=0
        for(int num:nums){
            int temp=Math.max(pre+num,cur);
            pre=cur;
            cur=temp;
        }
        return cur;
    }
举报

相关推荐

0 条评论