LeetCode—打家劫舍

打家劫舍(简单)

2020年5月24日

题目来源:力扣

LeetCode—打家劫舍_第1张图片

解题
动态规划(DP)
动态规划方程:dp[n] = MAX( dp[n-1], dp[n-2] + num )
思想是在当前位置 n 房屋可盗窃的最大值,要么就是 n-1 房屋可盗窃的最大值,要么就是 n-2 房屋可盗窃的最大值加上当前房屋的值,二者之间取最大值。
状态转移方程怎么那么难想阿!

class Solution {
     
    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];
    }
}

LeetCode—打家劫舍_第2张图片

你可能感兴趣的:(LeetCode)