Top 150-InterviewEinfach

Verrottende Orangen

Detaillierte Anleitung und Python-Implementierung für das Problem „Rotting Oranges“.

Problemstellung

Einfach

Sie erhalten ein mxn-Raster, in dem jede Zelle einen von drei Werten haben kann:

- 0 steht für eine leere Zelle,

- 1 steht für eine frische Orange, oder

- 2 stellt eine faule Orange dar.

Jede Minute wird jede frische Orange, die in 4 Richtungen an eine faule Orange angrenzt, faul.

Gibt die Mindestanzahl an Minuten zurück, die vergehen müssen, bis keine Zelle eine frische Orange mehr hat. Wenn dies nicht möglich ist, geben Sie -1 zurück.

Schreiben Sie eine Funktion orangesRotting(grid: List[List[int]]) -> int.

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

Beispiele

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?
Erwägen Sie die Verwendung von Graphs-spezifischen Datenstrukturen wie Mengen oder Heaps.
Edge Cases to Watch
  • Leere Eingabestrukturen
  • Einzelelementeingaben
  • Große numerische Grenzen

Bereit zur Lösung?

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

Im Editor öffnen
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

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.