239. 滑动窗口最大值
public int[] maxSlidingWindow(int[] a, int k) {if (a == null || k <= 0) {return new int[0];}int n = a.length;int[] r = new int[n-k+1];int ri = 0;// store indexDeque<Integer> q = new ArrayDeque<>();for (int i = 0; i < a.length; i++) {// remove numbers out of range k// 移除k以外的元素while (!q.isEmpty() && q.peek() < i - k + 1) {q.poll();}// remove smaller numbers in k range as they are uselesswhile (!q.isEmpty() && a[q.peekLast()] < a[i]) {q.pollLast();}// q contains index... r contains contentq.offer(i);if (i >= k - 1) {r[ri++] = a[q.peek()];}}return r;}
难点:
