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 von Zelle zu Zelle, jeweils einen Schritt nach oben, unten, links oder rechts (keine diagonalen Schritte, 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 für sich ist ein Pfad aus 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 monoton steigenden 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 unteren Zeile nach links, die mittlere Spalte hinauf und nach links zur 9 in der Ecke: 7 Zellen. Der kleinste Wert schneidet schlechter ab: Von der 1 aus sind die besten Pfade 1, 2, 7, 8, 9 und 1, 6, 7, 8, 9, jeweils mit 5 Zellen.

lock icon+18 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Kannst du auch die Zellen eines längsten Pfads zurückgeben, nicht nur seine Länge?

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

Fall 1

Fall 2

Fall 3

Eingabe

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

Erwartet

7