İçeriğe atla
CodeItRaw
Dinamik Programlama

Ders 4/4

Tablo her zaman liste indeksiyle dolmaz. Bozuk para probleminde kutular tutarlardır: best[x], x tutarını yapan en az para sayısı. x için her parayı son para olarak denersin; geriye x - coin kalır ve onun cevabı tabloda hazırdır.

INF = float("inf")
best = [0] + [INF] * amount
for x in range(1, amount + 1):
for coin in coins:
if coin <= x:
best[x] = min(best[x], best[x - coin] + 1)
return best[amount] if best[amount] != INF else -1
"Henüz yapılamıyor" için sonsuz kullanılır: min onu kendiliğinden eler ve sonunda hâlâ sonsuzsa tutar hiç yapılamıyor demektir. best[0] = 0: sıfır tutar sıfır parayla yapılır.

Izgarada kutu bir hücredir. Yalnızca sağa ve aşağı gidilebiliyorsa bir hücreye üstünden ya da solundan gelirsin: paths[r][c] = paths[r - 1][c] + paths[r][c - 1]. Duvar olan hücrenin değeri 0'dır; ilk satır ve ilk sütun, tek komşuları olduğu için ayrıca düşünülür.

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

    Bozuk Para Tablosu

    Kod Okuma · Çıktıyı Tahmin Et

  2. 02

    Izgara Yolları

    Fonksiyon

  3. 03

    Bozuk Para

    Fonksiyon

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