Top 150-InterviewEinfach

Schwimmen Sie im steigenden Wasser

Detaillierte Anleitung und Python-Implementierung für das Problem „Swim In Rising Water“.

Problemstellung

Einfach

Sie erhalten ein ganzzahliges n x n-Matrixgitter, in dem jeder Wert „grid[i][j]“ die Höhe an diesem Punkt (i, j) darstellt. Es beginnt zu regnen. Zum Zeitpunkt t beträgt die Wassertiefe überall t. Sie können von einem Quadrat zu einem anderen in 4 Richtungen angrenzenden Quadrat genau dann schwimmen, wenn beide Höhen in den Quadraten höchstens t betragen.

Sie beginnen im oberen linken Quadrat (0, 0). Wie lange dauert es am wenigsten, bis Sie das untere rechte Quadrat (n-1, n-1) erreichen?

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

Einschränkungen
  • n == len(grid) == len(grid[i])
  • 1 <= n <= 50
  • 0 <= grid[i][j] < n^2
  • Each value grid[i][j] is unique

Beispiele

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

At time 3, you are permitted to swim all the way from (0,0) to (1,1). The path is 0 -> 1 -> 3.

Example 2
Input
grid = [[0,1,2,3,4],[24,23,22,21,5],[12,13,14,15,16],[11,17,18,19,20],[10,9,8,7,6]]
Output
16
Explanation

The final path is 0-1-2-3-4-5-16-15-14-13-12-11-10-9-8-7-6. The maximum height along this path is 16.

Need a Hint?
Erwägen Sie die Verwendung von Advanced 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.