2954. Maximum Sum of Almost Unique Subarray
My accepted Python solution to LeetCode problem 2954, Maximum Sum of Almost Unique Subarray, running in 103ms.
- Difficulty: Medium
- Python
- Runtime 103ms
- Memory 21.3MB
- Updated
Read the problem on LeetCode View on GitHub
The problem statement is LeetCode’s and stays on their site. What follows is my accepted solution.
Python
Accepted on LeetCode — runtime 103ms, memory 21.3MB, accepted 2026-01-01.
class Solution:
def maxSum(self, nums: List[int], m: int, k: int) -> int:
from collections import defaultdict
n = len(nums)
if n < k:
return 0
freq = defaultdict(int)
distinct = 0
window_sum = 0
max_sum = 0
# Initialize first window
for i in range(k):
if freq[nums[i]] == 0:
distinct += 1
freq[nums[i]] += 1
window_sum += nums[i]
if distinct >= m:
max_sum = window_sum
# Slide window
for i in range(k, n):
# Add new element
if freq[nums[i]] == 0:
distinct += 1
freq[nums[i]] += 1
window_sum += nums[i]
# Remove old element
old = nums[i - k]
freq[old] -= 1
if freq[old] == 0:
distinct -= 1
window_sum -= old
if distinct >= m:
max_sum = max(max_sum, window_sum)
return max_sum