leetcode演算法題 刪除與獲得點數

2021-10-04 20:31:44 字數 736 閱讀 5354

以nums陣列最大的數來作為字典的最大索引,比如最大數為max,那麼字典的範圍就是從1到max,這樣如果字典中索引不在nums陣列裡就置0,轉換為了不能取相鄰兩個數,就可以用打家劫舍的方法來做了。

dp[i]表示nums[

:i]獲得最大的點數

狀態轉移

dp[i]

=max

(dp[i-1]

,dp[i-2]

+dict[i]

*i);

是不是和打家劫舍很像了,結果就是dp[max_num]。

int

deleteandearn

(vector<

int>

& nums)

int max_num=int_min;

for(

auto num:nums)

vector<

int>

dict

(max_num+1,

0);for

(auto num:nums)

vector<

int>

dp(max_num+1,

0); dp[1]

=dict[1]

;for

(int i=

2;i<=max_num;i++

)return dp[max_num]

;}

LeetCode 演算法題

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...

Leetcode演算法題

56.合併區間 給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 intervals 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 intervals 1,4 4,5 輸出 1,5 解釋 ...

Leetcode演算法題

20 有效的括號 題目描述 給定乙個只包括 的字串 s 判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。示例 示例 1 輸入 s 輸出 true 示例 2 輸入 s 輸出 true 示例 3 輸入 s 輸出 false 示例 4 輸入 s 輸出 fal...