740. Delete and Earn
1 題目
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: 6
Explanation:
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: 9
Explanation:
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.
2 解題
題目有一點需要理解的是,如果刪除元素3,那麼獲得3積分的同時,需要刪除陣列中所有的2和4。最開始我理解題目的時候,看成是要刪除nums[i-1]和nums[i+1]。
當理解了這一點之後就發現這個和搶劫的例子是一樣的。
class Solution {
public int deleteAndEarn(int[] nums) {
if(nums==null || nums.length==0) return 0;
int max = nums[0];
for(int num : nums){
max = Math.max(max,num);
}
int[] count = new int[max+1];
for(int num : nums){
count[num]++;
}
return rob(count);
}
public int rob(int[] count) {
int n = count.length;
int dp0 = count[1]*1;
int dp1 = 0;
for(int i=2;i<n;i++){
int dp = dp1 + i*count[i];
dp1 = Math.max(dp0,dp1);
dp0 = dp;
}
return Math.max(dp0,dp1);
}
}
相關文章
- F - Earn to Advance
- JavaScript deleteJavaScriptdelete
- URLSearchParams delete()delete
- FormData delete()ORMdelete
- Map delete() 方法delete
- WeakMap delete() 方法delete
- WeakSet delete() 方法delete
- SQL__DELETESQLdelete
- Set delete() 方法delete
- JavaScript delete用法JavaScriptdelete
- URLSearchParams delete() 方法delete
- git delete and revertGitdelete
- MySQL Delete PHPMySqldeletePHP
- OUTLOOK - Unable to Delete Meetingsdelete
- 450-Delete Node in a BSTdelete
- 記憶體(new delete )記憶體delete
- Sanic delete()方法/函式delete函式
- 如何提高MySQL DELETE 速度MySqldelete
- jemalloc delete 出現 segmentfaultdelete
- python--之np.deletePythondelete
- 【SQL】11 SQL DELETE 語句SQLdelete
- [20190825]Join View and delete.txtViewdelete
- How To Delete Unwanted Boot Menu Itemsdeleteboot
- sql:delete if exists還是drop if exists?SQLdelete
- 這樣delete居然不走索引delete索引
- 380. Insert Delete GetRandom O (1)deleterandom
- [20200906][轉載]FK on delete.txtdelete
- C malloc() free(), C++ new() delete()C++delete
- JS物件操作(in、instanceof、delete)運算子JS物件delete
- Leetcode 237. Delete Node in a Linked ListLeetCodedelete
- Elasticsearch Java High Level REST Client(Delete API)ElasticsearchJavaRESTclientdeleteAPI
- Centos/RHEL :How to add,delete and display LVM tagsCentOSdeleteLVM
- CF1913B Swap and Delete 題解delete
- 資料庫Delete的多種用法資料庫delete
- 如何提升SQLServer Delete資料的效率SQLServerdelete
- WorkBench,DELETE 標準語句失敗delete
- SQLite語句(二):INSERT DELETE UPDATE SELECTSQLitedelete
- [20180409]delete刪除緩慢分析.txtdelete