Oranges Rotting
Write a function that determines the minimum number of minutes required for all fresh oranges in a grid to become rotten. Every minute, any fresh orange that is 4-directionally adjacent (up, down, left, right) to a rotten orange also becomes rotten. If it is impossible to rot all fresh oranges, return -1.
Input: A 2D array grid representing the grid of oranges. Each cell in the grid can be:
0 → an empty cell
1 → a fresh orange
2 → a rotten orange
Output: Return the minimum number of minutes it takes for all fresh oranges to become rotten. If it’s not possible, return -1.
// Example 1: Input: [ [2,1,1], [1,1,0], [0,1,1] ] Output: 4 // Example 2: Input: [ [2,1,1], [0,1,1], [1,0,1] ] Output: -1 // Example 3: Input: [[0,2]] Output: 0
Constraints & Edge Cases
The grid can be empty.
- There may be no fresh or no rotten oranges at the start.
- Rotten oranges spread the rot to adjacent fresh oranges in 4 directions: up, down, left, and right.
- If fresh oranges are blocked by empty cells and can’t be reached, return -1.
- If there are no fresh oranges initially, return 0.
- If all oranges are already rotten, return 0.
Companies:
Solve Similar questions 🔥
Want to upskill? Explore our courses!
Namaste DSA
Master DSA from scratch with numerous problems, and expert guidance.
Namaste React
Wanna dive deep into React and become Frontend Expert? Learn with me now!
Namaste Frontend System Design
The most comprehensive and detailed course for frontend system design.
Namaste Node.js
Wanna dive deep into Node.js? Enroll into `Namaste Node.js` now!
