Menu
CoddyTech

Longest Increasing Path in a Matrix

Você recebe matrix, uma grade de números inteiros com m linhas e n colunas, como uma lista de linhas. Um caminho avança para cima, para baixo, para a esquerda ou para a direita (sem diagonais nem voltas pelas bordas), e cada passo deve chegar a um valor estritamente maior. Retorne o número de células no caminho mais longo desse tipo. Uma única célula forma um caminho de 1 célula.

Função

longestIncreasingPath(matrix: integer-2d-array) → integer
matrixinteger-2d-array
a grade de valores, como uma lista de linhas de mesmo comprimento
Retornainteger
o número de células no caminho estritamente crescente mais longo

Restrições

  • 1 ≤ m, n ≤ 100, em que m = matrix.length e n = matrix[i].length
  • Cada linha tem o mesmo comprimento n.
  • 0 ≤ matrix[i][j] ≤ 231-1

Exemplos

Entrada
matrix = [[9, 8, 3], [2, 7, 4], [1, 6, 5]]
Saída
7
Explicação
O caminho 3, 4, 5, 6, 7, 8, 9 desce pela coluna da direita, segue pela linha de baixo e sobe pela coluna do meio até o 9: 7 células. A partir do menor valor, 1, os melhores caminhos têm 5 células.
challenge icon

Para ir além

Você também pode retornar as células de um dos caminhos mais longos, junto com seu comprimento?

Redefinir código
def longestIncreasingPath(matrix):
    # Escreva o código aqui

Teste #1

Teste #2

Teste #3

Argumento

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

Saída Esperada

7