打家劫舍iv----删除并获得点数问题

Posted 秦枫-_-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打家劫舍iv----删除并获得点数问题相关的知识,希望对你有一定的参考价值。

在这里插入图片描述
在这里插入图片描述

class Solution {
    public int deleteAndEarn(int[] nums) {
    int maxvalue=0;
    for(int ch:nums){
        maxvalue=Math.max(ch,maxvalue);
    }
    int []all=new int[maxvalue+1];
    for(int ch:nums){
        all[ch]+=ch;
    }
    return delete(all);
    }
    public int delete(int []all){
        int []dp=new int[all.length];
        dp[0]=all[0];
        dp[1]=Math.max(dp[0],all[1]);
        for(int i=2;i<all.length;i++){
            dp[i]=Math.max(dp[i-1],dp[i-2]+all[i]);
        }
        return dp[all.length-1];
    }
}

以上是关于打家劫舍iv----删除并获得点数问题的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode740. 删除并获得点数(java/c++动态规划)

LeetCode 740 删除并获得点数 HERODING的LeetCode之路

LeetCode刷题笔记-动态规划-day3

LeetCode刷题笔记-动态规划-day3

LeetCode刷题笔记-动态规划-day3

leetcode专项 动态规划入门