数组模拟队列,存放当前窗口最大值
滑动窗口的最大值
http://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788
import java.util.*; public class Solution { public ArrayList<Integer> maxInWindows(int [] num, int size) { ArrayList<Integer> res = new ArrayList<>(); if(size == 0) return res; int hh = 0,tt = -1; int[] arr = new int[num.length]; for(int i = 0;i < num.length;i++){ if(hh <= tt && i - arr[hh] >= size) hh++; while(hh <= tt && num[i] > num[arr[tt]]) tt--; arr[++tt] = i; if(i >= size - 1 && hh <= tt) res.add(num[arr[hh]]); } return res; } }