740. Delete and Earn
题目描述
Given an array nums of integers, you can perform operations on the array.
In each operation, you pick any nums[i] and delete it to earn nums[i] points. After, you must delete every element equal to nums[i] - 1 or nums[i] + 1.
You start with 0 points. Return the maximum number of points you can earn by applying such operations.
|
|
|
|
Note:
The length of nums is at most 20000.
Each element nums[i] is an integer in the range [1, 10000].
题目大意
给定一个数组nums,可以执行如下操作:
在每次操作中,必须删除所有等于nums[i]- 1或nums[i]+ 1的元素,记录数组内剩余数字的总和
循环操作,求最大值。
解题思路
动态规划
dict[num]储存数字num的个数
maxNum表示数组内的最大值
dp表示删除不大于num的所有数字的最大值
代码
|
|