Skip to content

Commit eb8e236

Browse files
authored
Create 994-Rotting-Oranges.py
1 parent 294b4f4 commit eb8e236

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

994-Rotting-Oranges.py

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
class Solution:
2+
def orangesRotting(self, grid: List[List[int]]) -> int:
3+
q = collections.deque()
4+
fresh = 0
5+
time = 0
6+
7+
for r in range(len(grid)):
8+
for c in range(len(grid[0])):
9+
if grid[r][c] == 1:
10+
fresh += 1
11+
if grid[r][c] == 2:
12+
q.append((r, c))
13+
14+
directions = [[0, 1], [0, -1], [1, 0], [-1, 0]]
15+
while fresh > 0 and q:
16+
length = len(q)
17+
for i in range(length):
18+
r, c = q.popleft()
19+
20+
for dr, dc in directions:
21+
row, col = r + dr, c + dc
22+
# if in bounds and nonrotten, make rotten
23+
# and add to q
24+
if row in range(len(grid)) and \
25+
col in range(len(grid[0])) and \
26+
grid[row][col] == 1:
27+
grid[row][col] = 2
28+
q.append((row, col))
29+
fresh -= 1
30+
time += 1
31+
return time if fresh == 0 else -1

0 commit comments

Comments
 (0)