Leetcode:740. Delete and Earn
来源:互联网 发布:淘宝微淘话题在哪里找 编辑:程序博客网 时间:2024/05/18 05:07
Description
解题思路
挑选任意一个数字nums[i],得到nums[i]分,同时需要删除所有等于nums[i] - 1和nums[i] + 1的整数。求最大得分。
用动态规划(Dynamic Programming)求解
dp[x]表示删除不大于x的所有数字的最大得分。c[x]存储数字x的个数。
状态转移方程:
dp[x] = max(dp[x - 1], dp[x - 2] + c[x] * x)
class Solution {public: int deleteAndEarn(vector<int>& nums) { if(nums.size() == 0) return 0; vector<int> c(10001,0); for (int i = 0; i < nums.size(); i++) ++c[nums[i]]; vector<int> dp(c.size()+1,0); dp[1] = c[1]*1; for(int i =2; i <= 10000;i++) { dp[i] = max(dp[i-1],dp[i-2]+c[i]*i); } return dp[10000]; }};
阅读全文
0 0
- Leetcode:740. Delete and Earn
- LeetCode | 740. Delete and Earn
- [leetcode] 740. Delete and Earn
- [LeetCode]740. Delete and Earn
- Leetcode 740. Delete and Earn
- Leetcode | Delete and Earn
- 740. Delete and Earn
- 740. Delete and Earn
- 740. Delete and Earn
- 740. Delete and Earn
- 740. Delete and Earn
- 740. Delete and Earn
- 740. Delete and Earn
- 740. Delete and Earn
- 740. Delete and Earn
- 740. Delete and Earn
- leetcode weekly contest 61 ( 740. Delete and Earn )
- LeetCode#740 Delete and Earn (week16)
- 数据库
- 在【ES6】的【Class】中编写属性的取值函数【get】和存值函数【set】时的三点注意事项
- 利用python进行数据分析之dataframe的常见操作
- Java基础2——基本程序设计
- 浅谈时间复杂度及空间复杂度的计算。
- Leetcode:740. Delete and Earn
- Android 之路14---Java基础封装案例
- 在Myeclipse中,如何配置Database Driver呢?
- rails中 yeild 与 content_for之间的区别
- Java微信公众平台开发之群发接口(高级群发)
- Spring学习,IOC的类型
- OpenCV+Python环境搭建
- 「Pillow/PIL」Image Module
- 自定义 Android loading 加载框。