You are given an m x n grid where each cell can have one of three values:
0 representing an empty cell1 representing a fresh orange2 representing a rotten orangeEvery 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: grid = [[2,1,1],[1,1,0],[0,1,1]]
Output: 4
Explanation: At minute 0 the top-left orange is rotten. It takes 4 minutes for all fresh oranges to become rotten.
Example 2:
Input: grid = [[2,1,1],[0,1,1],[1,0,1]]
Output: -1
Explanation: The bottom-left orange (row 2, col 0) can never be reached by any rotten orange.
Example 3:
Input: grid = [[0,2]]
Output: 0
Explanation: There are no fresh oranges at minute 0, so the answer is 0.
m == grid.lengthn == grid[i].length1 <= m, n <= 10grid[i][j] is 0, 1, or 2