注意这里的,如果要当成队列来使用,这里que.pop(0),不是pop(-1)
class Solution:
def orangesRotting(self, grid: List[List[int]]) -> int:
m=len(grid)
n=len(grid[0])
que=[]
x=[0,0,-1,1]
y=[1,-1,0,0]
level=0
for i in range(m):
for j in range(n):
if grid[i][j]==2:
que.append((i,j))
while len(que)!=0:
for k in range(len(que)):
cur=que.pop(0)#注意这里的pop(0)才可以当成队列来使用
row=cur[0]
col=cur[1]
for q in range(4):
xx=x[q]+row
yy=y[q]+col
if 0<=xx<m and 0<=yy<n and grid[xx][yy]==1:
grid[xx][yy]=2
que.append((xx,yy))
level+=1
for i in range(m):
for j in range(n):
if grid[i][j]==1:
return -1
if level==0:
return 0
else:
return level-1