Queue Patterns Target: 15s
Monotonic deque maintains window max in O(n). Used for sliding-window-maximum and similar.
from collections import deque
dq = deque() # indices
for i, x in enumerate(a):
while dq and dq[0] < i - k + 1:
dq.popleft()
while dq and a[dq[-1]] <= x:
dq.pop()
dq.append(i)
if i >= k - 1:
result.append(a[dq[0]])
Type it from memory. Go.