Approach
Sliding window or two pointers
For Count Subarrays with K Distinct Integers, the implementation maintains a moving interval and updates only the information that enters or leaves the window.
- Choose the invariant that makes a window valid or useful.
- Advance the right boundary and add the new element.
- Move the left boundary only as needed while maintaining the invariant and updating the answer.
Code notes
- 37 lines of Python from the credited upstream file count-subarrays-with-k-distinct-integers.py.
- The implementation visibly relies on sequence storage, hash lookup.
- No explicit loop blocks detected.
Complexity
Confirm that neither pointer moves backwards; if so, the scan is usually linear apart from the window’s data-structure operations.
Check the problem constraints before deciding whether this complexity will pass.