992. Subarrays with K Different Integers
class Solution:
def subarraysWithKDistinct(self, nums: List[int], k: int) -> int:
def atMostK(k):
fast = 0
slow = 0
memo = defaultdict(int)
res = 0
while fast < len(nums):
char = nums[fast]
fast += 1
memo[char] += 1
while len(memo) > k:
d = nums[slow]
slow += 1
memo[d] -= 1
if memo[d] == 0:
del memo[d]
res += fast - slow
return res
return atMostK(k) - atMostK(k - 1)Last updated