記了一堆東西
總感覺可以省
等等洗澡有想到再來改
沒想到就算了
def maximumUniqueSubarray(self, nums: List[int]) -> int:
n = len(nums)
prefix_sum = [0 for _ in range(n)]
mp = {}
rets, cur_score, cur_sum, cur_start = -1, 0, 0, 0
for i, num in enumerate(nums):
cur_sum += num
prefix_sum[i] = cur_sum
if num not in mp:
mp[num] = i
cur_score += num
rets = max(cur_score, rets)
else:
cur_start = max(cur_start, mp[num])
cur_score = prefix_sum[i]-prefix_sum[cur_start]
rets = max(cur_score, rets)
mp[num] = i
return rets