Menu
CoddyTech

Longest Increasing Path in a Matrix

你会得到一个由整数构成的网格 matrix,它有 m 行和 n 列,并以行列表的形式给出。路径可以向上、向下、向左或向右移动(不能斜着移动,也不能绕过边缘),每一步都必须到达一个严格更大的值。返回这类路径中最长路径包含的单元格数量。单个单元格也算一条长度为 1 的路径。

函数

longestIncreasingPath(matrix: integer-2d-array) → integer
matrixinteger-2d-array
由等长行组成的值网格
返回值integer
最长严格递增路径上的单元格数量

约束条件

  • 1 ≤ m, n ≤ 100,其中 m = matrix.length,且 n = matrix[i].length
  • 每一行的长度都相同 n。
  • 0 ≤ matrix[i][j] ≤ 231-1

示例

输入
matrix = [[9, 8, 3], [2, 7, 4], [1, 6, 5]]
输出
7
解释
路径 3、4、5、6、7、8、9 沿着右侧列向下,沿着底行,再沿着中间列向上到达 9,共有 7 个单元格。从最小值 1 出发,最佳路径有 5 个单元格。
challenge icon

进阶

你还能返回一条最长路径上的所有单元格,以及这条路径的长度吗?

重置代码
def longestIncreasingPath(matrix):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

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

预期输出

7