java刷题--740删除并获得点数

Posted Anrys

tags:

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

java刷题--740删除并获得点数

题目

在这里插入图片描述

代码

class Solution {
    public int deleteAndEarn(int[] nums) {
        int max_Num = 0;
        for(int num: nums){ if(max_Num < num) max_Num = num; }
        //根据最大值创建多大的数组
        int[] dp = new int[max_Num + 1];
        //把数组中的元素存在新的新的数组中,数组下标表示指,该下标的数组指表示该下标出现的次数
        for (int num: nums) { dp[num]++; }
        //动态规划求解
        for(int i = 2; i <= max_Num; i++) {
            dp[i] = Math.max(dp[i - 1], dp[i - 2] + dp[i] * i);
        }return dp[max_Num];
    }
}

结果

在这里插入图片描述

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

740. 删除并获得点数(dp)

740. 删除并获得点数(dp)

LeetCode740. 删除并获得点数

740. 删除并获得点数

740. 删除并获得点数

leetcode740. 删除并获得点数(线性相邻dp问题)