class Solution:
def maxDistance(self, grid: List[List[int]]) -> int:
ld = []
res = 0
n = len(grid)
for i in range(len(grid)):
for j in range(len(grid[0])):
if grid[i][j] == 1:
ld.append((i,j))
if len(ld) == 0 or len(ld) == n ** 2:
return -1
step = -1
while len(ld) > 0:
for _ in range(len(ld)):
i, j = ld.pop(0)
for di,dj in [(1, 0), (-1, 0), (0, 1), (0, -1)]:
if i+di < n and i+di >= 0 and j+dj < n and j+dj >= 0 and grid[i+di][j+dj] == 0:
grid[i+di][j+dj] = -1
ld.append((i+di, j+dj))
step += 1
return step
leetcode-1162 地图分析 Python
最新推荐文章于 2024-10-08 10:17:41 发布