class Solution:
def orangesRotting(self, grid: List[List[int]]) -> int:
rows=len(grid)
cols=len(grid[0])
queue=deque([(i,j,0) for i in range(rows) for j in range(cols) if grid[i][j]==2])
directions = [[-1,0],[1,0],[0,-1],[0,1]]
minute=0
while queue:
row,col,minute=queue.popleft()
for d_row,d_col in directions:
u_row=d_row+row
u_col=d_col+col
if(
0<=u_row<rows and
0<=u_col<cols and
grid[u_row][u_col]==1
):
grid[u_row][u_col]=2
queue.append((u_row,u_col,minute+1))
if any(grid[i][j]==1 for i in range(rows) for j in range(cols)):return -1
return minute
08-08
306
09-03
1065