public static ArrayList<Integer> countDistinctElements(ArrayList<Integer> arr, int k) {
// Write your code here
int l = 0;
int r = 0;
int n = arr.size();
ArrayList<Integer> list = new ArrayList<>();
HashMap<Integer,Integer> map = new HashMap<>();
while(r<n)
{
map.put(arr.get(r),map.getOrDefault(arr.get(r), 0)+1);
if(r>=k-1)
{
while(r-l+1>k)
{
int t = arr.get(l);
map.put(t, map.get(t)-1);
if(map.get(t)==0)
map.remove(t);
l++;
}
list.add(map.size());
}
r++;
}
return list;
}