İçeriğe atla
CodeItRaw
Graflar

Ders 3/4

Bir graf tek parça olmak zorunda değildir. Birbirine bağlı düğümlerin her grubuna bileşen denir; ızgarada bunlar adalardır. Kaç ada olduğunu saymak için bütün hücreleri sırayla gezersin: görülmemiş bir kara hücresine rastladığında yeni bir ada bulmuşsundur; oradan bir gezinti başlatıp adanın tamamını işaretlersin.

islands = 0
seen = set()
for r in range(len(grid)):
for c in range(len(grid[0])):
if grid[r][c] == "." and (r, c) not in seen:
islands += 1
reachable(grid, r, c, seen)
return islands
Dıştaki iki döngü başlangıç noktası arar, gezinti adayı boyar. Sayaç yalnızca yeni bir gezinti başladığında artar; gezintinin içinde değil.

Adanın büyüklüğünü istiyorsan gezintinin boyadığı hücreleri sayarsın: gezintiden önceki ve sonraki küme boylarının farkı ya da gezintinin döndürdüğü bir sayı. İç içe döngülere rağmen toplam iş hücre sayısı kadardır, çünkü her hücre yalnızca bir kez boyanı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

    Adalar

    Fonksiyon

  2. 02

    En Büyük Ada

    Fonksiyon

  3. 03

    Listeyle Ziyaret

    Kod Okuma · Big-O Oku

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