{ array: number[], k: number }
1function maxSlidingWindow(nums, k):2 deque = []3 result = []4 for i = 0 to n-1:5 // remove elements outside window6 while deque.front < i - k + 1:7 deque.removeFront()8 // maintain decreasing order9 while deque not empty and nums[deque.back] <= nums[i]:10 deque.removeBack()11 deque.pushBack(i)12 if i >= k - 1:13 result.push(nums[deque.front])14 return result
1function maxSlidingWindow(nums: number[], k: number): number[] {2 const deque: number[] = [];3 const result: number[] = [];45 for (let i = 0; i < nums.length; i++) {6 while (deque.length && deque[0] < i - k + 1)7 deque.shift();89 while (deque.length && nums[deque[deque.length - 1]] <= nums[i])10 deque.pop();1112 deque.push(i);1314 if (i >= k - 1)15 result.push(nums[deque[0]]);16 }1718 return result;19}