Menu
CoddyTech

Longest Increasing Path in a Matrix

Ricevi matrix, una griglia di numeri interi con m righe e n colonne, sotto forma di elenco di righe. Un percorso procede in alto, in basso, a sinistra o a destra (senza diagonali e senza oltrepassare i bordi) e ogni passo deve arrivare a un valore strettamente maggiore. Restituisci il numero di celle del percorso più lungo di questo tipo. Una singola cella costituisce un percorso di 1 cella.

Funzione

longestIncreasingPath(matrix: integer-2d-array) → integer
matrixinteger-2d-array
la griglia di valori, come elenco di righe di uguale lunghezza
Restituisceinteger
il numero di celle nel percorso strettamente crescente più lungo

Vincoli

  • 1 ≤ m, n ≤ 100, dove m = matrix.length e n = matrix[i].length
  • Ogni riga ha la stessa lunghezza n.
  • 0 ≤ matrix[i][j] ≤ 231-1

Esempi

Input
matrix = [[9, 8, 3], [2, 7, 4], [1, 6, 5]]
Output
7
Spiegazione
Il percorso 3, 4, 5, 6, 7, 8, 9 scende lungo la colonna di destra, prosegue lungo la riga in basso e risale la colonna centrale fino al 9: 7 celle. Partendo dal valore più piccolo, 1, i percorsi migliori hanno 5 celle.
challenge icon

Per approfondire

Puoi anche restituire le celle di uno dei percorsi più lunghi, insieme alla sua lunghezza?

Ripristina il codice
def longestIncreasingPath(matrix):
    # Scrivi il codice qui

Test #1

Test #2

Test #3

Argomento

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

Output atteso

7