給你乙個整數陣列 nums ,你可以對它進行一些操作。
每次操作中,選擇任意乙個 nums[i] ,刪除它並獲得 nums[i] 的點數。之後,你必須刪除每個等於 nums[i] - 1 或 nums[i] + 1 的元素。
開始你擁有 0 個點數。返回你能通過這些操作獲得的最大點數。
示例 1:
輸入:nums = [3,4,2]
輸出:6
解釋:刪除 4 獲得 4 個點數,因此 3 也被刪除。
之後,刪除 2 獲得 2 個點數。總共獲得 6 個點數。
動態規劃
class solution
int m = mymap.size();
vectordp(m, 0);
auto iter = mymap.begin();
dp[0] = iter->second;
for(int i = 1; i < m; ++i)
else
dp[i] = dp[i-1] + iter->second;
}return dp[m-1];
}};
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...
leetcode740 刪除與獲得點數
給定乙個整數陣列 nums 你可以對它進行一些操作。每次操作中,選擇任意乙個 nums i 刪除它並獲得 nums i 的點數。之後,你必須刪除每個等於 nums i 1 或 nums i 1 的元素。開始你擁有 0 個點數。返回你能通過這些操作獲得的最大點數。示例 1 輸入 nums 3 4,2 ...