win中储存滑动窗口中非递增的序列(或者序列对应的下标都可)。

import java.util.*;
public class Solution {
    public ArrayList<Integer> maxInWindows(int [] num, int size){
        ArrayList<Integer> list=new ArrayList<>();
        if(num==null||num.length==0||size<=0) return list;
        Deque<Integer> win=new ArrayDeque<>();
        for(int l=0, r=0; r<num.length; r++){
            if(r-l>size-1) {
                if(win.peekFirst()==num[l]) 
                    win.removeFirst();
                l++;
            }
            while(!win.isEmpty()&&win.peekLast()<num[r]) 
                win.removeLast();
            win.addLast(num[r]);
            if(r-l==size-1) list.add(win.peekFirst());
        }
        return list;
    }
}