Menu
CoddyTech

Longest Increasing Path in a Matrix

Recibes matrix, una cuadrícula de números enteros con m filas y n columnas, como una lista de filas. Un camino va de una celda a otra, avanzando un paso hacia arriba, abajo, la izquierda o la derecha cada vez (sin pasos 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 celda por sí sola 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, va hacia la izquierda por la fila inferior, sube por la columna del medio y sigue hacia la izquierda hasta el 9 de la esquina: 7 celdas. El valor más pequeño da un resultado peor: desde el 1, los mejores caminos son 1, 2, 7, 8, 9 y 1, 6, 7, 8, 9, con 5 celdas cada uno.

lock icon+18 pruebas ocultas al enviar

challenge icon

Para ir más allá

¿También puedes devolver las celdas de uno de los caminos más largos, no solo su longitud?

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

Caso 1

Caso 2

Caso 3

Entrada

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

Esperado

7