import java.util.*;
import java.util.PriorityQueue;
import java.util.Comparator;
public class Solution {
private PriorityQueue<Integer> heap=new PriorityQueue<Integer>(15,new Comparator<Integer>(){
@Override
public int compare(Integer o1,Integer o2){
return o2-o1;
}
});
public ArrayList<Integer> maxInWindows(int [] num, int size)
{
ArrayList<Integer> list = new ArrayList<>();
if(num==null||num.length<size||size<=0||num.length==0) return list;
for(int i=0;i<size;i++) heap.add(num[i]);
list.add(heap.peek());
for(int i=size;i<num.length;i++){
heap.remove(num[i-size]);
heap.add(num[i]);
list.add(heap.peek());
}
return list;
}
}