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 si sposta da una cella a un'altra, di un passo alla volta in alto, in basso, a sinistra o a destra (senza passi diagonali e senza oltrepassare i bordi), e ogni passo deve terminare su un valore strettamente maggiore. Restituisci il numero di celle del percorso più lungo di questo tipo. Una singola cella, da sola, costituisce un percorso di 1 cella.

Funzione

longestIncreasingPath(matrix: integer-2d-array) → integer
matrixinteger-2d-array
la griglia di valori, come un 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, procede verso sinistra lungo la riga inferiore, risale lungo la colonna centrale e va a sinistra fino al 9 nell’angolo: 7 celle. Il valore più piccolo dà un risultato peggiore: partendo da 1, i percorsi migliori sono 1, 2, 7, 8, 9 e 1, 6, 7, 8, 9, con 5 celle ciascuno.

lock icon+18 test nascosti all’invio

challenge icon

Per approfondire

Puoi restituire anche le celle di uno dei percorsi più lunghi, non solo la sua lunghezza?

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

Caso 1

Caso 2

Caso 3

Input

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

Atteso

7