2461. Maximum Sum of Distinct Subarrays With Length K

wwww

class Solution:
    def maximumSubarraySum(self, nums: List[int], k: int) -> int:
        
        if len(nums) < k:
            return 0


        curSet = defaultdict(int)
        maxSum = float("-inf")
        l = 0
        curSum = 0

        for r in range(len(nums)):
            curSet[nums[r]] += 1
            curSum += nums[r]

            while curSet[nums[r]] > 1 or (r - l + 1) > k:
                curSum -= nums[l]
                curSet[nums[l]] -= 1
                l += 1

            if (r - l + 1) == k:
                maxSum = max(maxSum, curSum)

        return maxSum if maxSum != float("-inf") else 0