from collections import deque
class Solution:
def updateMatrix(self, matrix):
row = len(matrix)
col = len(matrix[0])
res = [[0] * col for _ in range(row)]
visited = [[False for _ in range(col)]for _ in range(row)]
detection = [[-1,0],[1,0],[0,1],[0,-1]]
queue = deque()
for i in range(row):
for j in range(col):
if matrix[i][j] == 0:
queue.append((i,j))
visited[i][j] = True
while queue:
i,j = queue.popleft()
for index in detection:
if 0 <= index[0]+i <row and 0 <=index[1]+j <col and visited[index[0]+i][index[1]+j] != True:
res[index[0]+i][index[1]+j] = res[i][j] + 1
queue.append((index[0]+i,index[1]+j))
visited[index[0]+i][index[1]+j] = True
return res
07-09
07-09
07-09
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交