Yığına değer yerine indeks koymak sana iki bilgiyi birden verir: değeri (values[i]) ve yeri. "Kaç gün beklemeli?" gibi sorularda cevap iki yerin farkıdır; değeri saklasaydın bu farkı hesaplayamazdın.
from collections import dequewindow = deque()for i, v in enumerate(values):while window and values[window[-1]] <= v:window.pop()window.append(i)if window[0] <= i - size:window.popleft()
deque iki ucu da tek adımda yapar; pencerenin en büyüğü hep window[0]'dadır.Yığın bir ucu kullanır (son giren ilk çıkar), kuyruk iki ucu (ilk giren ilk çıkar). Listenin başından pop(0) yapmak kalan bütün elemanları kaydırır; kuyruk gerektiğinde deque kullan.