Leetcode1695. 删除子数组的最大得分[C++题解]:双指针、区间内元素不能重复
生活随笔
收集整理的這篇文章主要介紹了
Leetcode1695. 删除子数组的最大得分[C++题解]:双指针、区间内元素不能重复
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 題目分析
- 題目鏈接
題目分析
1。數組中沒有負數意味著什么?意味著區間越大,其和越大。
2. 對于給定下標i,其左邊的一個區間滿足沒有重復數的左邊界(最左邊)下標為j,我們有,隨著i右移,坐標j也會單調右移。 因此可以使用雙指針來做!
3. 還有一個問題:如何快速判斷一個區間內有沒有重復數?可以開一個hash table ,記錄每個數出現多少次,如果下標i的數加進來之后,發現hash table里的值大于1,說明出現重復數,而且重復的一定是下標為i的這個數。 此時,我們就讓左邊界的指針j一直往后走,直到下標i這個數不重復為止。
ac代碼
時間復雜度O(n)
題目鏈接
Leetcode1695. 刪除子數組的最大得分
總結
以上是生活随笔為你收集整理的Leetcode1695. 删除子数组的最大得分[C++题解]:双指针、区间内元素不能重复的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode1694. 重新格式化电
- 下一篇: STL容器之Deque-《C++标准库(