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.
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
}