Facebook Pixel

Oranges Rotting

JavaScript
medium
45 mins

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:

amazon
microsoft
linkedin

Solve Similar questions 🔥

Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.