美文网首页
打家劫舍2

打家劫舍2

作者: 小幸运Q | 来源:发表于2021-03-11 20:06 被阅读0次

改成环形,需要判断首位是否填充,然后分类讨论,首位填充,则最后一位无法填充只能借前一位的解。

class Solution {
public:
    int dp[1000]={0};
    int i,j;
    int rob(vector<int>& nums) {
        if(nums.size()==0){
            return 0;
        }else if(nums.size()==1){
            return nums[0];
        }else if(nums.size()==2){
            return max(nums[0],nums[1]);
        }else if(nums.size()==3){
            return max(max(nums[1],nums[0]),nums[2]);
        }

        // dp首位填充,奇数偶数最后一位不能有数据
        dp[0]=nums[0];
        dp[1]=nums[0];
        dp[2]=nums[0]+nums[2];
        for(i=3;i<nums.size()-1;i++){
            dp[i]=max(max(dp[i-2],dp[i-3])+nums[i],dp[i-1]);
        }
        dp[nums.size()-1]=dp[nums.size()-2];

        // dp 首位不填充,最后一位可以有
        dp[0]=0;
        dp[1]=nums[1];
        dp[2]=max(nums[1],nums[2]);
        for(i=3;i<nums.size()-1;i++){
            dp[i]=max(max(dp[i-2],dp[i-3])+nums[i],dp[i-1]);
        }
        return max(dp[nums.size()-1],max(max(dp[i-2],dp[i-3])+nums[i],dp[i-1]));
    }
};

相关文章

  • 打家劫舍2

    改成环形,需要判断首位是否填充,然后分类讨论,首位填充,则最后一位无法填充只能借前一位的解。

  • LeetCode-198-打家劫舍

    LeetCode-198-打家劫舍 198. 打家劫舍[https://leetcode-cn.com/probl...

  • 诗歌:小强盗

    小强盗 文/sunshine珊珊 去打家劫舍呀 只劫他一家 去打家劫舍呀 金山不要 银矿不要 去打家劫舍呀 只劫一...

  • 补卡-打家劫舍

    198. 打家劫舍

  • 返回大小姐星级酒店

    华东交大打家劫舍

  • v 的很简单

    打家劫舍看到半部分

  • 打家劫舍

    你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连...

  • 打家劫舍

    题目描述 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋...

  • 打家劫舍

    打家劫舍 经典的动态规划入门题目 题一 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷...

  • 打家劫舍

    题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装...

网友评论

      本文标题:打家劫舍2

      本文链接:https://www.haomeiwen.com/subject/vkrwqltx.html