1695 刪除子陣列的最大得分

2021-10-12 11:41:05 字數 1014 閱讀 8134

題目描述:

給你乙個正整數陣列 nums ,請你從中刪除乙個含有 若干不同元素 的子陣列。刪除子陣列的 得分 就是子陣列各元素之 和 。

返回 只刪除乙個 子陣列可獲得的 最大得分 。

如果陣列 b 是陣列 a 的乙個連續子串行,即如果它等於 a[l],a[l+1],…,a[r] ,那麼它就是 a 的乙個子陣列。

示例 1:

輸入:nums = [4,2,4,5,6]

輸出:17

解釋:最優子陣列是 [2,4,5,6]

示例 2:

輸入:nums = [5,2,1,2,5,2,1,2,5]

輸出:8

解釋:最優子陣列是 [5,2,1] 或 [1,2,5]

1 <= nums.length <= 105

方法1:

(1)使用滑動視窗,該視窗的限制條件是不能有相同的元素,故使用unordered_set來進行視窗內元素的唯一性的標識;

(2)先盡量的擴大視窗右邊界,若右邊界的元素不存在unordered_set中,則插入到unordered_set中,並接著擴大右邊界;

(3)若右邊界的元素存在unordered_set中,則需要調整左邊界,直到左邊界指向的元素和右邊界的元素相等,調整的過程中,需要對應的刪除unordered_set中左邊界的值;

(4)在調整上述視窗的過程中,需要統計視窗內的元素和,以統計最大得分;

class

solution

//跳過相同的值

loc_res -

= nums[left]

;++left;

}else

//調整右邊界

++right;

res =

max(res, loc_res)

;//統計可能的最大值

}return res;}}

;

1717 刪除子字串的最大得分

題目描述 給你乙個字串 s 和兩個整數 x 和 y 你可以執行下面兩種操作任意次。刪除子字串 ab 並得到 x 分。比方說,從 cabxbae 刪除 ab 得到 cxbae 刪除子字串 ba 並得到 y 分。比方說,從 cabxbae 刪除 ba 得到 cabxe 請返回對 s 字串執行上面操作若干...

Python 石子遊戲的最大得分

力扣 leetcode 未來不止於此 你正在玩乙個單人遊戲,面前放置著大小分別為 a b和c的三堆石子。每回合你都要從兩個不同的非空堆 中取出一顆石子,並在得分上加 1 分。當存在兩個或更多的空堆時,遊戲停止。給你三個整數a b和c,返回可以得到的最大分數 示例 1 輸入 a 2,b 4,c 6 輸...

1753 移除石子的最大得分

題目描述 你正在玩乙個單人遊戲,面前放置著大小分別為 a b 和 c 的 三堆 石子。每回合你都要從兩個 不同的非空堆 中取出一顆石子,並在得分上加 1 分。當存在 兩個或更多 的空堆時,遊戲停止。給你三個整數 a b 和 c 返回可以得到的 最大分數 示例 1 輸入 a 2,b 4,c 6 輸出 ...