class Solution:
def floodFill(self, image: List[List[int]], sr: int, sc: int, color: int) -> List[List[int]]:
copy_image = [row[:] for row in image]
original_color = image[sr][sc]
def should_paint(copy_image, image, i, j):
if i < 0 or i >= len(image) or j < 0 or j >= len(image[0]):
return
if copy_image[i][j] != original_color:
return
copy_image[i][j] = color
should_paint(copy_image, image, i+1, j)
should_paint(copy_image, image, i-1, j)
should_paint(copy_image, image, i, j+1)
should_paint(copy_image, image, i, j-1)
if original_color != color:
should_paint(copy_image, image, sr, sc)
return copy_image