Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution:
- def orangesRotting(self, grid: List[List[int]]) -> int:
- q = deque()
- n, m = len(grid), len(grid[0])
- fresh = 0
- rotten = 0
- level = 0
- for i in range(n):
- for j in range(m):
- if grid[i][j] == 2:
- q.append((i, j))
- if grid[i][j] == 1:
- fresh += 1
- while q:
- for _ in range(len(q)):
- (r, c) = q.popleft()
- directions = [(1, 0), (-1, 0), (0, 1), (0, -1)]
- for (dr, dc) in directions:
- row, col = r + dr, c + dc
- if row in range(n) and col in range(m) and grid[row][col] == 1:
- q.append((row, col))
- grid[row][col] = 2
- rotten += 1
- if q:
- level += 1
- return level if fresh==rotten else -1
Advertisement
Add Comment
Please, Sign In to add comment