Multi-source BFS from all initially rotten oranges.
Enqueue all rotten positions. Count fresh. BFS level by level (each level = 1 minute), rotting adjacent fresh oranges. At the end, if fresh remains, return -1.
Rot spreads uniformly in waves; BFS levels model elapsed time exactly.
Multi-source BFS from all initially rotten oranges.
Enqueue all rotten positions. Count fresh. BFS level by level (each level = 1 minute), rotting adjacent fresh oranges. At the end, if fresh remains, return -1.
Rot spreads uniformly in waves; BFS levels model elapsed time exactly.