classSolution:# BFSdeforangesRotting(self, grid: List[List[int]])->int:
row, col, time =len(grid),len(grid[0]),0
directions =[(1,0),(-1,0),(0,1),(0,-1)]
queue =[]# 把腐烂橘子的坐标入队for i inrange(row):for j inrange(col):if grid[i][j]==2:
queue.append((i, j, time))# bfswhile queue:
i, j, time = queue.pop(0)for di, dj in directions:if0<= i + di < row and0<= j + dj < col and grid[i + di][j + dj]==1:
grid[i + di][j + dj]=2# 把腐烂橘子邻近的新鲜橘子变成腐烂橘子
queue.append((i + di, j + dj, time +1))# 如果还有新鲜橘子,就返回-1for row in grid:if1in row:return-1return time