Asosiy tarkibga o‘tish

O‘rganish

Kirish
Qo‘llanma

Qo‘llanma · Dasturlash

queue

Masalalar tez orada

Nazariya

Navbat — «birinchi kirgan birinchi chiqadi» (FIFO). Python’da collections.deque ishlating: ro‘yxatdan pop(0) O(n), deque.popleft() esa O(1).

from collections import deque

q = deque()
q.append(5)        # oxiriga
q.appendleft(1)    # boshiga
x = q.popleft()    # boshidan olish

Qayerda kerak

  • BFS (kenglik bo‘yicha qidiruv) — navbatsiz bo‘lmaydi.
  • Jarayonlarni kelish tartibida qayta ishlash (simulyatsiya).
  • Oyna maksimumi: deque’da indekslarni kamayish tartibida saqlab, har oyna maksimumini O(1) da olish.
dq, out = deque(), []
for i, x in enumerate(a):
    while dq and a[dq[-1]] <= x:
        dq.pop()
    dq.append(i)
    if dq[0] <= i - k:
        dq.popleft()
    if i >= k - 1:
        out.append(a[dq[0]])

Bu mavzu bo‘yicha masalalar tez orada qo‘shiladi.

Shu mavzu kirgan kurslar

Menyu

Ko‘rinish

Klaviatura yorliqlari

Ctrl K yoki /
Qidirish va buyruqlar
g h
Bosh sahifa
g p
Masalalar
g c
Musobaqalar
g r
Reyting
Ctrl Enter
Masala sahifasida — yechimni yuborish
?
Shu oyna