Menu
CoddyTech

Flood Fill

FacileGraphespython iconjava iconcpp iconc iconjs icon+10

Une image est une grille de nombres entiers, où chaque nombre correspond à la couleur d’un pixel. L’image vous est fournie sous forme d’une liste de lignes, avec un pixel de départ à la ligne sr et à la colonne sc, ainsi qu’une nouvelle color. Recolorez la région qui contient le pixel de départ : chaque pixel de la même couleur que celui-ci que vous pouvez atteindre en vous déplaçant vers le haut, le bas, la gauche ou la droite à travers des pixels de cette même couleur. Renvoyez l’image après la recoloration.

Fonction

floodFill(image: integer-2d-array, sr: integer, sc: integer, color: integer) → integer-2d-array
imageinteger-2d-array
l’image sous forme de liste de lignes, un nombre par pixel
srinteger
la ligne du pixel de départ, comptée à partir de 0
scinteger
la colonne du pixel de départ, comptée à partir de 0
colorinteger
la nouvelle couleur de la région
Renvoieinteger-2d-array
l’image après le repeint de la région

Contraintes

  • 1 ≤ image.length ≤ 80
  • 1 ≤ image[i].length ≤ 80
  • Chaque ligne a la même longueur.
  • 0 ≤ image[i][j], color ≤ 65535
  • 0 ≤ sr < image.length et 0 ≤ sc < image[0].length

Exemples

Entrée
image = [[1, 1, 0], [1, 0, 1], [1, 1, 1]]sr = 0sc = 0color = 5
Sortie
[[5, 5, 0], [5, 0, 5], [5, 5, 5]]
Explication
Le point de départ contient la couleur 1. Le 1 à sa droite, les 1 de la colonne de gauche et de la rangée du bas, ainsi que le 1 au-dessus du coin inférieur droit, lui sont reliés : les sept deviennent donc des 5. Les deux 0 sont d’une couleur différente et la conservent.

lock icon+18 tests cachés à la soumission

challenge icon

Pour aller plus loin

Comment votre solution changerait-elle si les pixels qui se touchent uniquement par un coin étaient également considérés comme connectés ?

Réinitialiser le code
def floodFill(image, sr, sc, color):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

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

Attendu

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