İçeriğe atla
CodeItRaw
Açgözlü & Aralıklar

Ders 2/4

Her kutudan en çok values[i] kadar ileri atlayabiliyorsan sona varabilir misin? Hangi kutuya atlayacağına karar vermek zorunda değilsin. Tek bir sayı taşı: şimdiye kadar erişebildiğim en uzak kutu. Bir kutuya erişebiliyorsan, ondan önceki her kutuya da erişebilirsin.

reach = 0
for i, jump in enumerate(values):
if i > reach:
return False
reach = max(reach, i + jump)
return True
Her kutuda önce "buraya gelebildim mi?" diye sorulur; gelemediysen bundan sonrası da kapalıdır. Geldiysen bu kutunun sunduğu erişimle (i + jump) en uzağı güncellersin.

Aynı fikir ızgarada "en yakın hedefe git" kuralı olarak karşına çıkar: her seferinde en yakındakini toplamak çoğu zaman iyi bir plandır ve hesabı kolaydır. "Çoğu zaman" kelimesine dikkat: en yakın, en kısa toplam yolu garanti etmez; enerjin sınırlıyken bunu ölçmen gerekir.

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

    En Yakın Çip

    Sızma

  2. 02

    Zıplama Oyunu

    Fonksiyon

  3. 03

    Zıplama Oyunu

    Kod Okuma · Hatayı Bul

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