Untitled
unknown
plain_text
2 years ago
969 B
7
Indexable
class Solution: def orangesRotting(self, grid: List[List[int]]) -> int: time = 0 fresh = 0 queue = deque([]) moves= [[-1,0],[1,0],[0,1],[0,-1]] num_rows=len(grid) num_cols=len(grid[0]) for i in range(num_rows): for j in range(num_cols): if grid[i][j]==1: fresh+=1 if grid[i][j]==2: queue.append((i,j)) while queue and fresh: time+=1 size = len(queue) for i in range(size): x, y = queue.popleft() for dx,dy in moves: tempX=x+dx tempY=y+dy if 0<=tempX<num_rows and 0<=tempY<num_cols and grid[tempX][tempY]==1: queue.append((tempX,tempY)) grid[tempX][tempY]=2 fresh-=1 return -1 if fresh else time
Editor is loading...