目录
一、题目
二、代码
一、题目
740. 删除并获得点数 - 力扣(LeetCode)

二、代码
转换成打家劫舍问题

class Solution {
public:
    int deleteAndEarn(vector<int>& nums) {
        int Max = nums[0];//nums中的最大点数
        for(int i=0;i<nums.size();i++)
        {
            if(nums[i]>Max)
            Max=nums[i];
        }
        vector<int>data(Max+1,0);
        
        for(int i=0;i<nums.size();i++)//data数组保存某个点数出现的总和,下标i表示点数i
        {
            data[nums[i]] += nums[i];
        }
        vector<int>dp(Max+1,0);//转换成打家劫舍问题
        dp[0] = 0;
        dp[1] = data[1];
        for(int i = 2;i<=Max;i++)
        {
            dp[i] = max(dp[i-1],dp[i-2]+data[i]);
        }
        return dp[Max];
    }
}; 


















