c语言sscanf函数的用法是什么
295
2022-11-29
[leetcode] 740. Delete and Earn
Description
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.
Example 1:
Input: nums = [3, 4, 2]Output: 6Explanation: Delete 4 to earn 4 points, consequently 3 is also deleted.Then, delete 2 to earn 2 points. 6 total points are earned.
Example 2:
Input: nums = [2, 2, 3, 3, 3, 4]Output: 9Explanation: Delete 3 to earn 3 points, deleting both 2's and the 4.Then, delete 3 again to earn 3 points, and 3 again to earn 3 points.9 total points are earned.
Note:
The length of nums is at most 20000.Each element nums[i] is an integer in the range [1, 10000].
分析
题目的意思是:给你一个数组,每删除一个数,你就会获得那个位置的数值,但是同时你要删一个那个数-1的数,或者该数值+1的数,然后求你最终能够获得的最大的值。
我们首先统计每个数的求和,然后就可以转化成house robber的问题了。dp[i]在于拿或者不拿当前的数得到的最大的数值。这道题我做不出来,看来能够正确理解题意,对解决问题的帮助很大。
代码
class Solution {public: int deleteAndEarn(vector 参考文献 Delete and Earn问题及解法[LeetCode] Delete and Earn 删除与赚取
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~