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 image

dfs

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
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 17:30
找实习找着找着就要进入7月了,马上秋招也要开始了,找实习还有意义吗?
绝迹的星:有面就面, 没面上就当日薪4位数大佬免费培训, 面上了再考虑要不要实习
点赞 评论 收藏
分享
05-09 14:45
门头沟学院 Java
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务