public class Main {
private static Scanner in;
public static void main(String[] args) {
in = new Scanner(System.in);
int n = in.nextInt();
int k = in.nextInt();
int t = in.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = in.nextInt();
}
//System.out.println(Arrays.toString(arr));
System.out.println(getNum(arr, n, k, t));
}
public static int getNum(int[] arr, int n, int k, int t) {
if (k > n)
return 0;
Map<Integer, Integer> map = new HashMap<>();
int index = 0;
int res = 0;
for (int i = 0; i < n; i++) {
if (map.containsKey(arr[i])) {
map.put(arr[i], map.get(arr[i]) + 1);
} else {
map.put(arr[i], 1);
}
if (map.get(arr[i]) == t)
index++;
if (i >= k-1) {
if (index > 0)
res++;
map.put(arr[i - k + 1], map.get(arr[i - k + 1]) - 1);
if (map.get(arr[i - k + 1]) == t - 1)
index--;
}
}
return res;
}
}
按照题主思路来的java,不过我是用了hashmap