AlgoPrecision

Stacks And Queues

Queue Operations

Visualize FIFO behavior with enqueue, dequeue, and peek operations before moving into sliding window and scheduling patterns.

O(n) time / O(n) space
FIFO: first in, first outoperation: dequeresult: -
FrontRear
empty queue

Time

O(n)

Space

O(n)

Step Note

Use a decreasing deque of indexes for window size 3.

Details
function maxSlidingWindow(values: number[], size: number) {
  const deque = []
  const output = []
  for (let i = 0; i < values.length; i++) {
    while (deque.length && deque[0] <= i - size) deque.shift()
    while (deque.length && values[deque.at(-1)] <= values[i]) deque.pop()
    deque.push(i)
    if (i >= size - 1) output.push(values[deque[0]])
  }
  return output
}