题目链接
英文链接:https://leetcode.com/problems/longest-increasing-path-in-a-matrix/
中文链接:https://leetcode-cn.com/problems/longest-increasing-path-in-a-matrix/
题目详述
给定一个整数矩阵,找出最长递增路径的长度。
对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。
示例 1:
1 | 输入: nums = |
示例 2:
1 | 输入: nums = |
题目详解
动态规划,记忆化搜索。
- 状态定义:
cache[i][j]
表示走到(i, j)
这个格子时的最大长度。 - 状态转移:枚举上下左右四个格子,如果某个格子
(x, y)
比当前格子小,用该格子更新当前状态,得到状态转移方程为cache[i][j] = max{cache[i][j], 1 + dfs(x, y)
。 - 本题的状态依赖关系比较复杂,用循环不易实现,可以用记忆化搜索。
1 | public class LeetCode_00329 { |