Menu
CoddyTech

Longest Increasing Path in a Matrix

Otrzymujesz matrix, siatkę liczb całkowitych z m wierszami i n kolumnami, w postaci listy wierszy. Ścieżka prowadzi w górę, w dół, w lewo lub w prawo (bez ruchów po przekątnej i bez zawijania na krawędziach), a każdy krok musi prowadzić do ściśle większej wartości. Zwróć liczbę komórek na najdłuższej takiej ścieżce. Pojedyncza komórka to ścieżka o długości 1 komórki.

Funkcja

longestIncreasingPath(matrix: integer-2d-array) → integer
matrixinteger-2d-array
siatka wartości w postaci listy wierszy o tej samej długości
Zwracainteger
liczba komórek na najdłuższej ściśle rosnącej ścieżce

Ograniczenia

  • 1 ≤ m, n ≤ 100, gdzie m = matrix.length i n = matrix[i].length
  • Każdy wiersz ma tę samą długość n.
  • 0 ≤ matrix[i][j] ≤ 231-1

Przykłady

Wejście
matrix = [[9, 8, 3], [2, 7, 4], [1, 6, 5]]
Wyjście
7
Wyjaśnienie
Ścieżka 3, 4, 5, 6, 7, 8, 9 biegnie w dół prawej kolumny, wzdłuż dolnego wiersza i w górę środkowej kolumny do 9: 7 komórek. Od najmniejszej wartości, 1, najlepsze ścieżki mają 5 komórek.
challenge icon

Pytanie dodatkowe

Czy możesz również zwrócić komórki jednej z najdłuższych ścieżek wraz z jej długością?

Zresetuj kod
def longestIncreasingPath(matrix):
    # Wpisz kod tutaj

Test #1

Test #2

Test #3

Argument

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

Oczekiwany wynik

7