Rotting Oranges

BFS

Problem

You are given an m x n grid where each cell can have one of three values:

  • 0 representing an empty cell,

  • 1 representing a fresh orange, or

  • 2 representing a rotten orange.

Every minute, any fresh orange that is 4-directionally adjacent to a rotten orange becomes rotten.

Return the minimum number of minutes that must elapse until no cell has a fresh orange. If this is impossible, return -1.

Thought Process

  • This question is similar to Walls and Gates

  • We will store all the rotten oranges ('2') in a queue while alos keeping track of how many fresh oranges we have.

  • We are applying BFS to search for the rotten oranges neighbors so we can rot them too. We are processing rotten oranges by level.

Solution

Time Complexity

  • Time: O(m*n)

  • Space: O(m*n)

Last updated

Was this helpful?