Problem of the day
Every minute, any fresh orange adjacent(4-directionally) to a rotten orange becomes rotten.
You must return the minimum time after which no fresh oranges are left. Return -1 if it's impossible to rot all the fresh oranges.
Example:Input: [[2,1,1],[1,1,0],[0,0,0]]
Output: 2
At T=0, only orange at (0,0) is rotten.
At T=1, oranges at (0,0),(0,1) and (1,0) are rotten.
At T=2, oranges at (0,0),(0,1),(1,0),(0,2) and (1,1) are rotten.
No fresh oranges are left after T=2.
1 <= N*M <= 10^5
0 <= grid[i][j] <= 2
Time Limit: 1 sec
2
3 3
2 1 0
1 1 0
0 0 0
2 2
2 1
1 2
2
1
For the first case:
Input: [[2,1,1],[1,1,0],[0,0,0]]
Output: 2
At T=0, only orange at (0,0) is rotten.
At T=1, oranges at (0,0),(0,1) and (1,0) are rotten.
At T=2, oranges at (0,0),(0,1),(1,0),(0,2) and (1,1) are rotten.
No fresh oranges are left after T=2.
For the second case:
Input: [[2,1],[1,2]]
Output: 1
At T=0, only oranges at (0,0) and (1,1) are rotten.
At T=1, oranges at (0,0),(0,1),(1,0) and (1,1) are rotten.
No fresh oranges are left after T=1.
2
3 3
2 1 1
1 1 0
0 1 1
3 3
2 1 0
0 1 1
1 0 1
4
-1