給定乙個整數陣列 nums ,你可以對它進行一些操作。每次操作中,選擇任意乙個 nums[i] ,刪除它並獲得 nums[i] 的點數。之後,你必須刪除每個等於 nums[i] - 1 或
nums[i] + 1 的元素。
開始你擁有 0 個點數。返回你能通過這些操作獲得的最大點數。
示例 1:
輸入: nums = [3, 4, 2] 輸出: 6 解釋: 刪除 4 來獲得 4 個點數,因此 3 也被刪除。 之後,刪除 2 來獲得
2 個點數。總共獲得 6 個點數。
示例 2:
輸入: nums = [2, 2, 3, 3, 3, 4] 輸出: 9 解釋: 刪除 3 來獲得 3 個點數,接著要刪除兩個 2 和 4
。 之後,再次刪除 3 獲得 3 個點數,再次刪除 3 獲得 3 個點數。 總共獲得 9 個點數。
注意:
nums的長度最大為20000。
每個整數nums[i]的大小都在[1, 10000]範圍內。
class
solution
return dp[sum.
size()
];}}
;
如果有不對或者完全無中生有的地方,還煩請路過的大佬提點提點。 刪除與獲得點數
一 題目描述 二 題目分析 本題使用動態規劃得以解決,思路參考 解決本題的關鍵在於不要被陣列這一因素束縛。由於題目對最大元素有限制,因此事實上我們可以申請乙個下標足以涵蓋陣列中最大數的陣列all,all陣列的下標 i 代表實際的元素,all i 代表題目給的陣列有多少個元素i 雜湊表 獲得了dp陣列...
740 刪除並獲得點數
給你乙個整數陣列 nums 你可以對它進行一些操作。每次操作中,選擇任意乙個 nums i 刪除它並獲得 nums i 的點數。之後,你必須刪除每個等於 nums i 1 或 nums i 1 的元素。開始你擁有 0 個點數。返回你能通過這些操作獲得的最大點數。示例 1 輸入 nums 3,4,2 ...
leetcode演算法題 刪除與獲得點數
以nums陣列最大的數來作為字典的最大索引,比如最大數為max,那麼字典的範圍就是從1到max,這樣如果字典中索引不在nums陣列裡就置0,轉換為了不能取相鄰兩個數,就可以用打家劫舍的方法來做了。dp i 表示nums i 獲得最大的點數狀態轉移 dp i max dp i 1 dp i 2 dic...