1class Solution {2public int[] maxSlidingWindow(int[] nums, int k) {3Deque<Integer> queue = new LinkedList<>();4int l = 0, r = 0;5int[] res = new int[nums.length - k + 1];6int index = 0;7while (r < nums.length) {8int n = nums[r++];9while (!queue.isEmpty() && n > queue.peekLast()) {10queue.pollLast();11}12queue.offer(n);13while (r - l > k) {14int m = nums[l++];15if (m == queue.peekFirst()) {16queue.pollFirst();17}18}19if (r - l == k) {20res[index++] = queue.peekFirst();21}22}23return res;24}25}