Rotting Oranges – Solution & Complexity
1. Understand the Goal
- Identify the required output and the state that changes.
- Use the examples to rule out tempting but incorrect interpretations.
2. Choose the Core Pattern
- This problem is best exposed by Multi-source BFS expands one minute-layer at a time.
- Maintain only the state needed for the next operation.
3. Build the Algorithm
- Process each state once when possible.
- Record state before scheduling dependent work to avoid duplicates.
4. Check Edge Cases
- Verify the smallest input, impossible cases, and repeated values where allowed.
- Keep output ordering deterministic.
5. Final Solution and Complexity
- Time complexity is O(m*n).
- Space complexity is O(m*n).