Entrevista a los 150 mejoresfácil

Naranjas podridas

Guía detallada e implementación Python para el problema 'Naranjas podridas'.

Declaración del problema

fácil

Se le proporciona una cuadrícula de mx n donde cada celda puede tener uno de tres valores:

- 0 representa una celda vacía,

- 1 que representa una naranja fresca, o

- 2 que representa una naranja podrida.

Cada minuto, cualquier naranja fresca que esté adyacente en 4 direcciones a una naranja podrida se pudre.

Devuelve el número mínimo de minutos que deben transcurrir hasta que ninguna celda tenga una naranja fresca. Si esto es imposible, devuelve -1.

Escribe una función orangesRotting(grid: List[List[int]]) -> int.

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

Ejemplos

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 la posibilidad de utilizar estructuras de datos específicas de Graphs, como conjuntos o montones.
Edge Cases to Watch
  • Estructuras de entrada vacías
  • Entradas de un solo elemento
  • Grandes límites numéricos

¿Listo para resolver?

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

Abrir en el 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 recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.