题目简介\nLeetCode 329题“矩阵中的最长递增路径”是一道经典的深度优先搜索(DFS)与动态规划相结合的难题。给定一个 m x n 的整数矩阵,要求找出从任意单元格出发、沿着上下左右四个方向移动(但只能移动到值严格更大的相邻格子)时的最长递增路径的长度。这道题的核心挑战在于矩阵的规模较大时,暴力DFS会因重复计算而超时,因此必须借助记忆化搜索(即缓存已经计算过的结果)来优化时间复杂度。\n\n本文将提供一个Java实现的解决方案,并详细解释每个步骤的逻辑。\n\n## 解题思路\n我们要解决的问题是:对于矩阵中的每个单元格(i, j),计算以它为起点所能形成的最长递增路径长度。传统DFS会从每个起点遍历所有可能路径,但许多子路径会被多次重复计算(例如,从不同起点到达同一个单元格后,最优路径是相同的)。因此,我们可以使用DFS深度优先遍历并结合一个等大的记忆化数组,一旦某个单元格的计算已完成,就不再递归遍历,直接返回缓存值。\n\n# 算法步骤\n1. 定义单元:设置矩阵的行数 m 和列数 n。记忆化数组 memo[m][n] 初始化为0(表示未计算)。\n2. 全局最大值:遍历所有坐标(i, j),作为源点启动DFS,用全局变量 res 保存当前全局最大长度。对于每个起点的递归返回长度,更新res的最大值。\n3. 剪枝与边界检查:对一个移动方向定义四个方向向量(上下左右)。在进行DFS必须确保newRow >= 0 && newRow < m 和 `newCol >= 0154了边界。同时依靠\n4. 递归终止:一旦递归不能再向更大数值移动(超出边界或停止递增长度加一 +