leetcode_733 图像渲染
对图像进行染色,一圈一圈的为周围点上***fs
其中需要注意给上同样颜色时,判断一下,直接输出.否则一直在循环中.
from collections import deque
class Solution:
def floodFill(self, image: List[List[int]], sr: int, sc: int, newColor: int) -> List[List[int]]:
queue=collections.deque()
directions=[(0,1),(1,0),(-1,0),(0,-1)]
queue.append((sr,sc))
target=image[sr][sc]
if newColor==target:
return image
image[sr][sc]=newColor
while queue:
i,j=queue.popleft()
print(queue)
for di in directions:
if 0<=i+di[0]<len(image) and 0<=j+di[1]<len(image[0]):
if image[i+di[0]][j+di[1]]==target:
image[i+di[0]][j+di[1]]=newColor
queue.append((i+di[0],j+di[1]))
return imagedfs
class Solution:
def floodFill(self, image: List[List[int]], sr: int, sc: int, newColor: int) -> List[List[int]]:
directions=[(0,1),(1,0),(-1,0),(0,-1)]
target=image[sr][sc]
if target==newColor:
return image
image[sr][sc]=newColor
def dfs(i,j):
for di in directions:
if 0<=i+di[0]<len(image) and 0<=j+di[1]<len(image[0]):
if image[i+di[0]][j+di[1]]==target:
image[i+di[0]][j+di[1]]=newColor
dfs(i+di[0],j+di[1])
dfs(sr,sc)
return image
文远知行公司福利 526人发布