Count subarrays where the maximum element appears at least k times.

Input: nums=[1,3,2,3,3], k=2 → Output: 6 Input: nums=[1,4,2,1], k=3 → Output: 0

Sliding window: find minimum valid window where max appears k times, then count subarrays.

public long countSubarrays(int[] nums, int k) { int max = Arrays.stream(nums).max().getAsInt(); long count = 0; int left = 0, maxCount = 0; for (int right = 0; right < nums.length; right++) { if (nums[right] == max) maxCount++; while (maxCount >= k) { count += nums.length - right; if (nums[left] == max) maxCount--; left++; } } return count; }