Menu
CoddyTech

Flood Fill

KolayGraflarpython iconjava iconcpp iconc iconjs icon+10

Bir görüntü, her sayının bir pikselin rengini belirttiği tam sayılardan oluşan bir ızgaradır. Görüntü sana satırlardan oluşan bir liste, sr satırında ve sc sütununda bulunan bir başlangıç pikseli ve yeni bir color olarak verilir. Başlangıç pikselini içeren bölgeyi yeniden boya: başlangıç pikselinin rengine sahip olup aynı renkteki pikseller üzerinden yukarı, aşağı, sola veya sağa ilerleyerek başlangıç pikselinden ulaşabileceğin her pikseli boya. Yeniden boyama işleminden sonraki görüntüyü döndür.

Fonksiyon

floodFill(image: integer-2d-array, sr: integer, sc: integer, color: integer) → integer-2d-array
imageinteger-2d-array
görüntüyü satırlardan oluşan bir liste olarak, piksel başına bir sayı
srinteger
başlangıç pikselinin 0'dan başlayarak sayılan satırı
scinteger
başlangıç pikselinin 0'dan başlayarak sayılan sütunu
colorinteger
bölge için yeni renk
Döndürürinteger-2d-array
bölge yeniden çizildikten sonraki görüntü

Kısıtlar

  • 1 ≤ image.length ≤ 80
  • 1 ≤ image[i].length ≤ 80
  • Her satır aynı uzunluktadır.
  • 0 ≤ image[i][j], color ≤ 65535
  • 0 ≤ sr < image.length ve 0 ≤ sc < image[0].length

Örnekler

Girdi
image = [[1, 1, 0], [1, 0, 1], [1, 1, 1]]sr = 0sc = 0color = 5
Çıktı
[[5, 5, 0], [5, 0, 5], [5, 5, 5]]
Açıklama
Başlangıçta 1 rengi bulunur. Sağındaki 1, sol sütundaki ve alt sıradaki 1'ler ve sağ alt köşenin üzerindeki 1, başlangıca bağlıdır; bu yüzden yedisinin de değeri 5 olur. İki 0 farklı bir renktedir ve değişmeden kalır.

lock iconGönderirken +18 gizli test

challenge icon

Ek soru

Köşelerde yalnızca birbirine değen pikseller de bağlantılı sayılsaydı çözümünüz nasıl değişirdi?

Kodu sıfırla
def floodFill(image, sr, sc, color):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Durum 3

Girdi

image = [[1, 1, 0], [1, 0, 1], [1, 1, 1]]
sr = 0
sc = 0
color = 5

Beklenen

[[5, 5, 0], [5, 0, 5], [5, 5, 5]]