from typing import List class Solution: def floodFill(self, image: List[List[int]], sr: int, sc: int, newColor: int) -> List[List[int]]: self.image = image self.height = len(image) self.width = len(image[0]) self.newColor = newColor if image[sr][sc] != newColor: self.oldColor = image[sr][sc] self.colorPixel(row=sr, column=sc) return image def colorPixel(self, row: int, column: int) -> None: if self.image[row][column] != self.newColor: self.image[row][column] = self.newColor if row - 1 >= 0 and self.image[row - 1][column] == self.oldColor: self.colorPixel(row - 1, column) if column + 1 < self.width and self.image[row][column + 1] == self.oldColor: self.colorPixel(row, column + 1) if row + 1 < self.height and self.image[row + 1][column] == self.oldColor: self.colorPixel(row + 1, column) if column - 1 >= 0 and self.image[row][column - 1] == self.oldColor: self.colorPixel(row, column - 1)