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