LeetCode—打家劫舍

打家劫舍(简单)

2020年5月24日

题目来源:力扣

在这里插入图片描述

解题
动态规划(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];
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41541562/article/details/106311977
今日推荐