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

Ders 2/4

Bir işaretçi listenin başına, biri sonuna konur ve birbirlerine doğru yürürler. Her adımda yalnızca biri hareket eder; hangisinin hareket edeceğine o anki duruma bakarak karar verirsin.

lo, hi = 0, len(values) - 1
while lo < hi:
total = values[lo] + values[hi]
if total == key:
return True
if total < key:
lo += 1
else:
hi -= 1
return False
Liste sıralı olduğu için: toplam küçükse onu büyütmenin tek yolu soldakini sağa kaydırmaktır; büyükse sağdakini sola. Her adım bir elemanı kesin olarak eler, bu yüzden n adımda biter.

Palindrom kontrolü de aynı yürüyüştür: iki uçtaki elemanlar eşit mi, eşitse ikisi de bir adım içeri. Ortada buluştuklarında bitmiştir.

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

    Palindrom Kontrolü

    Kod Okuma · Hatayı Bul

  2. 02

    Sıralıda Çift Ara

    Fonksiyon

  3. 03

    Toplam Kilidi

    Kod Düellosu

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