Untitled

 avatar
unknown
plain_text
2 years ago
631 B
5
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...