 All Problems
Rotting Oranges
medium
array
breadth-first search
matrix
amazon
google
microsoft

You are given an m x n grid where each cell can have one of three values:

  • 0 representing an empty cell
  • 1 representing a fresh orange
  • 2 representing a rotten orange

Every minute, any fresh orange that is 4-directionally adjacent to a rotten orange becomes rotten.

Return the minimum number of minutes that must elapse until no cell has a fresh orange. If this is impossible, return -1.

Example 1:

Input:
3 3
2 1 1
1 1 0
0 1 1
Output: 4

Example 2:

Input:
3 3
2 1 1
0 1 1
1 0 1
Output: -1

Constraints:

  • m == grid.length, n == grid[i].length
  • 1 ≤ m, n ≤ 10
  • grid[i][j] is 0, 1, or 2

Input format: First line: m n. Then m lines each with n space-separated integers (0, 1, or 2).

Output format: Minimum minutes or -1.

Run to check your code against the sample cases, or submit to run every case