Python same from Walls and Gates


  • 0
    from collections import deque
    
    class Solution(object):
        def updateMatrix(self, matrix):
            """
            :type matrix: List[List[int]]
            :rtype: List[List[int]]
            """
            queue = deque([])
            directions = [(0, -1), (0, 1), (-1, 0), (1, 0)]
            
            for i in range(len(matrix)):
                for j in range(len(matrix[0])):
                    if matrix[i][j] == 0:
                        queue.append((i, j))
                    if matrix[i][j] == 1:
                        matrix[i][j] = -1
                        
            while queue:
                i, j = queue.popleft()
                for di, dj in directions:
                    ni, nj = i + di, j + dj
                    if 0 <= ni < len(matrix) and 0 <= nj < len(matrix[0]) and matrix[ni][nj] == -1:
                        matrix[ni][nj] = matrix[i][j] + 1
                        queue.append((ni, nj))
            return matrix
                
    

Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.