Menu
CoddyTech

Longest Increasing Path in a Matrix

Se te proporciona matrix, una cuadrícula de números enteros con m filas y n columnas, como una lista de filas. Un camino avanza hacia arriba, hacia abajo, a la izquierda o a la derecha (sin diagonales ni pasar de un borde al otro), y cada paso debe llegar a un valor estrictamente mayor. Devuelve el número de celdas del camino más largo de este tipo. Una sola celda es un camino de 1 celda.

Función

longestIncreasingPath(matrix: integer-2d-array) → integer
matrixinteger-2d-array
la cuadrícula de valores, como una lista de filas de igual longitud
Devuelveinteger
el número de celdas en la ruta estrictamente creciente más larga

Restricciones

  • 1 ≤ m, n ≤ 100, donde m = matrix.length y n = matrix[i].length
  • Cada fila tiene la misma longitud n.
  • 0 ≤ matrix[i][j] ≤ 231-1

Ejemplos

Entrada
matrix = [[9, 8, 3], [2, 7, 4], [1, 6, 5]]
Salida
7
Explicación
El camino 3, 4, 5, 6, 7, 8, 9 baja por la columna de la derecha, sigue por la fila inferior y sube por la columna del medio hasta el 9: 7 celdas. Desde el valor más pequeño, 1, los mejores caminos tienen 5 celdas.
challenge icon

Para ir más allá

¿También puedes devolver las celdas de una de las rutas más largas, junto con su longitud?

Restablecer código
def longestIncreasingPath(matrix):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumento

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

Salida Esperada

7