Untitled
unknown
plain_text
3 years ago
631 B
6
Indexable
public int[] countDistinct(int[] arr, int k) {
int ws = arr.length - k + 1;
int[] ans = new int[ws];
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < k; i++) {
map.put(arr[i], map.getOrDefault(arr[i], 0) + 1);
}
ans[0] = map.size();
int j = 0;
for (int i = k; i < arr.length; i++) {
map.put(arr[i], map.getOrDefault(arr[i], 0) + 1);
map.put(arr[j], map.getOrDefault(arr[j], 0) - 1);
if (map.get(arr[j]) == 0) {
map.remove(arr[j]);
}
j++;
ans[i - k + 1] = map.size();
}
return ans;
}
Editor is loading...