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.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.