150 principais entrevistasFácil

Laranjas podres

Guia detalhado e implementação de Python para o problema 'Rotting Oranges'.

Declaração do problema

Fácil

Você recebe uma grade m x n onde cada célula pode ter um de três valores:

- 0 representando uma célula vazia,

- 1 representando uma laranja fresca, ou

- 2 representando uma laranja podre.

A cada minuto, qualquer laranja fresca que esteja adjacente em quatro direções a uma laranja podre fica podre.

Retorne o número mínimo de minutos que devem decorrer até que nenhuma célula tenha uma laranja fresca. Se isso for impossível, retorne -1.

Escreva uma função orangesRotting(grid: List[List[int]]) -> int.

Restrições
  • m == len(grid)
  • n == len(grid[i])
  • 1 <= m, n <= 10
  • grid[i][j] is 0, 1, or 2

Exemplos

Example 1
Input
grid = [[2,1,1],[1,1,0],[0,1,1]]
Output
4
Explanation

Minute 0: rotten at (0,0). Fresh at (0,1), (0,2), (1,0), (1,1), (2,1), (2,2). Minute 1: fresh at (0,1) and (1,0) rot. Minute 2: fresh at (0,2) and (1,1) rot. Minute 3: fresh at (2,1) rot. Minute 4: fresh at (2,2) rot.

Example 2
Input
grid = [[2,1,1],[0,1,1],[1,0,1]]
Output
-1
Explanation

The orange in the bottom-left corner (row 2, column 0) is never adjacent to a rotten orange, so it stays fresh.

Need a Hint?
Considere usar estruturas de dados específicas de gráficos, como conjuntos ou heaps.
Edge Cases to Watch
  • Estruturas de entrada vazias
  • Entradas de elemento único
  • Grandes limites numéricos

Pronto para resolver?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Abrir no Editor
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Recursos Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.