题目:
思路:这种题的思路是递归去做,当成图的深度优先遍历(DFS)
首先标记所需位置的值,记为origin。
之后建立一个DFS的递归函数,在函数中找到image[x][y] == origin
,之后将这块的值换成所需要的color,然后疯狂递归自己,进行一个转圈式的寻找,直到寻找到超出边界值为止。
代码如下:
class Solution:
def floodFill(self, image: List[List[int]], sr: int, sc: int, color: int) -> List[List[int]]:
origin = image[sr][sc]
if origin == color:
return image
def DFS(x, y, origin): # x y 表示横纵坐标
if 0 <= x < len(image) and 0 <= y < len(image[0]) and image[x][y] == origin:
image[x][y] = color
DFS(x-1, y, origin)
DFS(x+1, y, origin)
DFS(x, y-1, origin)
DFS(x, y+1, origin)
DFS(sr, sc, origin)
return image
偷偷感谢某个大佬给我点了一下方向