İçeriğe atla
CodeItRaw
Diziler

Ders 6/6

"Solundaki sayıların toplamı" ya da "şu ana kadarki en düşük fiyat" gibi bir bilgiye her elemanda ihtiyacın varsa, onu her seferinde baştan hesaplama. Gezerken güncelle: bir önceki değere yeni elemanı ekle.

total = sum(values)
left = 0
for i, v in enumerate(values):
if left == total - left - v:
return i
left += v
return -1
enumerate hem yeri hem değeri birlikte verir. Sağdaki toplamı ayrıca tutmaya gerek yok: hepsinin toplamından solu ve elemanın kendisini çıkarınca sağ kalır. left, karşılaştırmadan sonra büyür.

En iyi alım-satım da aynı fikirdir: her gün için "bugüne kadarki en düşük fiyat"ı taşırsan, bugün satmanın kârı tek bir çıkarmadır. İç içe iki döngü yerine tek geçiş.

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.Sıradaki derse git

  1. 01

    Denge Noktası

    Fonksiyon

  2. 02

    Yarıya Bölme

    Kod Okuma · Big-O Oku

  3. 03

    Fiyat İzleyici

    Fonksiyon

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