題目鏈結
思路——(打家劫舍4?)
一開始看到左右都受影響就想到了leetcode-312 戳氣球,但是後來才發現這就是**打家劫舍
鴨!!!
只要你選用了a,那麼a-1和a+1都和你無關了,那麼肯定是要貪心的選全部的a才對得起損失。
問題轉化為對於每乙個元素,不能選它的臨近值(不能偷隔壁),聯動成功!
具體**
1.將nums陣列最大值求出mm
2.開乙個mm+1大小的value陣列,value[mm]表示mm的個數
3.dp計算打家劫舍,遞推
dp[i]=max(dp[i-2]+i*value[i],dp[i-1]);
class
solution
vector<
int>
value
(mm+1,
0);for
(int i=
0;isize()
;i++
) vector<
int>
dp(value.
size()
,0);
dp[0]
=0; dp[1]
=value[1]
;for
(int i=
2;isize()
;i++
)return dp[dp.
size()
-1];
}};
leetcode740 刪除與獲得點數
給定乙個整數陣列 nums 你可以對它進行一些操作。每次操作中,選擇任意乙個 nums i 刪除它並獲得 nums i 的點數。之後,你必須刪除每個等於 nums i 1 或 nums i 1 的元素。開始你擁有 0 個點數。返回你能通過這些操作獲得的最大點數。示例 1 輸入 nums 3 4,2 ...
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 ...