前往
大廳
主題

LeetCode - 740. Delete and Earn 解題心得

Not In My Back Yard | 2022-06-26 12:00:01 | 巴幣 0 | 人氣 215

題目連結:


題目意譯:
你被給定一整數陣列 nums。你想要藉由以下執行任意次數得操作來最大化你可以得到的分數:
挑任意一個 nums[i] 並將其刪除來獲得 nums[i] 分。接著你必須刪除所有等於 nums[i] - 1 和 nums[i] + 1 之值。

回傳你藉由使用若干次的上述操作後可以獲得的最大分數值。

限制:
1 ≦ nums.length ≦ 2 × 10 ^ 4
1 ≦ nums[i] ≦ 10 ^ 4



範例測資:
範例 1:
輸入: nums = [3,4,2]
輸出: 6
解釋: 你可以執行以下操作:
- 刪除 4 來得到 4 分。接著,3 也將被刪除。nums = [2]。
- 刪除 2 來得到 2 分。nums = []。
你總共得到了 6 分。

範例 2:
輸入: nums = [2,2,3,3,3,4]
輸出: 9
解釋: 你可以執行以下操作:
- 刪除 3 來得到 3 分。所有的 2 和 4 也將被刪除。nums = [3,3]。
- 再次刪除 3 來得到 3 分。nums = [3]。
- 繼續刪除 3 來得到 3 分。nums = []。
你總共得到了 9 分。


解題思維:
基本上與這題雷同,只是變數數值範圍不太一樣。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作