İçeriğe atla
CodeItRaw
İki İşaretçi & Kayan Pencere

Ders 4/4

"Art arda k elemanın en büyük toplamı" sorusunda her pencereyi baştan toplamak boşa emektir. Pencere bir adım kaydığında değişen yalnızca iki elemandır: biri girer, biri çıkar.

window = sum(values[:k])
best = window
for i in range(k, len(values)):
window += values[i] - values[i - k]
best = max(best, window)
return best
İlk pencere bir kez toplanır. Sonra her adımda sağdan gireni ekle, soldan çıkanı çıkar. Liste ne kadar uzun olursa olsun her eleman en çok iki kez okunur.

Pencerenin boyu sabit olmak zorunda değil. "Toplamı en az key olan en kısa parça" için pencereyi sağdan büyütürsün; şart sağlandığı sürece soldan küçültür ve her seferinde uzunluğu not edersin. İki uç da yalnızca ileri gider.

Görevler

Görevler sırayla açılır. Hepsini çözünce sonraki ders açılır.

Bu dersin görevleri, önceki dersler bitince açılır. Anlatımı şimdiden okuyabilirsin.

  1. 01

    Kayan Pencere

    Fonksiyon

  2. 02

    Satış Penceresi

    Fonksiyon

  3. 03

    En Kısa Pencere

    Fonksiyon

Sırayı beklemeden çözmek istersen bütün problemler kilitsiz açık: Problemler listesi