Menu
CoddyTech

Longest Increasing Path in a Matrix

Du erhältst matrix, ein Raster aus ganzen Zahlen mit m Zeilen und n Spalten, als Liste von Zeilen. Ein Pfad verläuft nach oben, unten, links oder rechts (keine Diagonalen, kein Überschreiten der Ränder), und jeder Schritt muss auf einem strikt größeren Wert landen. Gib die Anzahl der Zellen auf dem längsten solchen Pfad zurück. Eine einzelne Zelle bildet einen Pfad mit 1 Zelle.

Funktion

longestIncreasingPath(matrix: integer-2d-array) → integer
matrixinteger-2d-array
das Raster aus Werten, als Liste gleich langer Zeilen
Gibt zurückinteger
die Anzahl der Zellen auf dem längsten streng ansteigenden Pfad

Einschränkungen

  • 1 ≤ m, n ≤ 100, wobei m = matrix.length und n = matrix[i].length
  • Jede Zeile hat dieselbe Länge n.
  • 0 ≤ matrix[i][j] ≤ 231-1

Beispiele

Eingabe
matrix = [[9, 8, 3], [2, 7, 4], [1, 6, 5]]
Ausgabe
7
Erklärung
Der Pfad 3, 4, 5, 6, 7, 8, 9 verläuft die rechte Spalte hinunter, entlang der untersten Zeile und die mittlere Spalte hinauf bis zur 9: 7 Zellen. Vom kleinsten Wert, 1, aus haben die besten Pfade 5 Zellen.
challenge icon

Weiterführende Frage

Können Sie auch die Zellen eines längsten Pfads zusammen mit seiner Länge zurückgeben?

Code zurücksetzen
def longestIncreasingPath(matrix):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argument

matrix = [[9, 8, 3], [2, 7, 4], [1, 6, 5]]

Erwartete Ausgabe

7