题干 给定一个整数矩阵,找出最长递增路径的长度。 对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。 示例 1: 输入 : nums = [ [ 9 , 9 , 4 ] , [ 6 , 6 , 8 ] , [ 2 , 1 , 1 ] ] 输出 : 4 解释 : 最长递增路径为 [ 1 , 2 , 6 , 9 ] 。 示例 2: 输入 : nums = [ [ 3 , 4 , 5 ] , [ 3 , 2 , 6 ] , [ 2 , 2 , 1 ] ] 输出 : 4 解释 : 最长递增路径是 [ 3 , 4 , 5 , 6 ] 。注意不允许在对角线方向上移动。 想法 一看有点回溯法那味儿了,但是仔细想了想 可以这样完成: 使用矩阵dp来保存最长路径 其中dp[x][y]表示从xy出发递增最长路径, 我们就只需要遍历矩阵取出最大就行 初始化dp全部为0 现在关键点就是: 确定了起点以后怎么找出最长路径, 比如说现在起点在x,y,,如果dp[x][y]>0说明已经处理过了不用管 否则就分别尝试上下左右四个方向,如果不越界且它大于现在的数,那么就更新长度,直接看代码很好懂 Java代码 class Solution { public int longestIncreasingPath ( int [ ] [ ] matrix ) {