-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathflood_fill.py
22 lines (18 loc) · 1.03 KB
/
flood_fill.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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)