leetcode740 刪除與獲得點數

2021-10-07 10:34:39 字數 911 閱讀 6094

給定乙個整數陣列 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 個點數。

注意:

題目說了每個整數的範圍不超過10000,因此首先建立乙個長度為10000的陣列arr,統計每個整數出現的次數。

題目中說,選擇nums[i]後nums[i]-1和nums[i]+1不能被選擇,在arr陣列中,nums[i]-1在nums[i]左邊一位,nums[i]+1在nums[i]右邊一位。因此問題轉化成了打家劫舍問題。即:相鄰的房間不能偷取,問能夠偷取的最大金額。(在arr中,arr[i] * (i + 1)表示金額)

class

solution

return res;}}

;

Leetcode 740 刪除與獲得點數

題目鏈結 思路 打家劫舍4?一開始看到左右都受影響就想到了leetcode 312 戳氣球,但是後來才發現這就是打家劫舍鴨!只要你選用了a,那麼a 1和a 1都和你無關了,那麼肯定是要貪心的選全部的a才對得起損失。問題轉化為對於每乙個元素,不能選它的臨近值 不能偷隔壁 聯動成功!具體 1.將nums...

740 刪除與獲得點數 動態規劃

題目描述 給定乙個整數陣列 nums 你可以對它進行一些操作。每次操作中,選擇任意乙個 nums i 刪除它並獲得 nums i 的點數。之後,你必須刪除每個等於 nums i 1 或 nums i 1 的元素。開始你擁有 0 個點數。返回你能通過這些操作獲得的最大點數。示例 1 輸入 nums 3...

力扣c語言實現 740 刪除與獲得點數

給定乙個整數陣列 nums 你可以對它進行一些操作。每次操作中,選擇任意乙個 nums i 刪除它並獲得 nums i 的點數。之後,你必須刪除每個等於 nums i 1 或 nums i 1 的元素。開始你擁有 0 個點數。返回你能通過這些操作獲得的最大點數。示例 1 輸入 nums 3,4,2 ...