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; } }