MaximumErasureValue
Published at 2022-07-17
class Solution:
def maximumUniqueSubarray(self, nums: List[int]) -> int:
# 슬라이딩 윈도우.
# 새로 들어온 애가 sub array에 있으면 걔 나올때까지 시작위치 옮기기
maxSum = nums[0]
sums = nums[0]
sets = set()
sets.add(nums[0])
i, j = 1, 0 # 뒤, 앞
while i<len(nums):
if nums[i] in sets:
sets.remove(nums[i])
while nums[j] != nums[i]:
sets.remove(nums[j])
sums -= nums[j]
j += 1
sums -= nums[j]
j += 1
sets.add(nums[i])
sums += nums[i]
maxSum = max(maxSum, sums)
i += 1
return maxSum