classSolution: defmaximumUniqueSubarray(self, nums: List[int]) -> int: length = len(nums) if length == 1: return nums[0] prefix_sum = collections.defaultdict(int) for i inrange(length): prefix_sum[i] = prefix_sum[i - 1] + nums[i] # num : index seen = {} result = 0 start = end = 0 for end inrange(length): if nums[end] in seen and start <= seen[nums[end]]: start = seen[nums[end]] + 1 else: current_sum = prefix_sum[end] - prefix_sum[start - 1] result = max(result, current_sum) seen[nums[end]] = end end += 1 return result