Menu
CoddyTech

Longest Increasing Path in a Matrix

Tu reçois matrix, une grille de nombres entiers comportant m lignes et n colonnes, sous forme de liste de lignes. Un chemin avance vers le haut, le bas, la gauche ou la droite (pas de diagonales ni de passage d’un bord à l’autre), et chaque étape doit aboutir à une valeur strictement supérieure. Renvoie le nombre de cellules du plus long chemin de ce type. Une seule cellule constitue un chemin de 1 cellule.

Fonction

longestIncreasingPath(matrix: integer-2d-array) → integer
matrixinteger-2d-array
la grille de valeurs, sous forme de liste de lignes de même longueur
Renvoieinteger
le nombre de cellules du plus long chemin strictement croissant

Contraintes

  • 1 ≤ m, n ≤ 100, où m = matrix.length et n = matrix[i].length
  • Chaque ligne a la même longueur n.
  • 0 ≤ matrix[i][j] ≤ 231-1

Exemples

Entrée
matrix = [[9, 8, 3], [2, 7, 4], [1, 6, 5]]
Sortie
7
Explication
Le chemin 3, 4, 5, 6, 7, 8, 9 descend le long de la colonne de droite, suit la rangée du bas et remonte la colonne du milieu jusqu’au 9 : 7 cellules. À partir de la plus petite valeur, 1, les meilleurs chemins comptent 5 cellules.
challenge icon

Pour aller plus loin

Peux-tu également renvoyer les cellules de l’un des plus longs chemins, ainsi que sa longueur ?

Réinitialiser le code
def longestIncreasingPath(matrix):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Argument

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

Résultat attendu

7