Windows with k distinct values

Write codeMedium14 min

Your task

Given an integer array nums, a window size k (1 <= k <= length), and an integer m, count how many windows of k consecutive elements contain at least m distinct values. Maintain a value-count map and a running distinct counter as the window slides; do not rebuild a set per window. Example: nums = [1, 1, 1, 2, 1], k = 3, m = 2 gives 2, windows [1,1,2] and [1,2,1] qualify, [1,1,1] does not.

Examples

count_varied_windows(nums: list[int], k: int, m: int) -> int
Example 1
Inputcount_varied_windows([1, 1, 1, 2, 1], 3, 2)
Output2