矩阵中的最长递增路径
Posted Alice_yufeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了矩阵中的最长递增路径相关的知识,希望对你有一定的参考价值。
class Solution
public int[][] dirs = -1, 0, 1, 0, 0, -1, 0, 1;
public int rows, columns;
public int longestIncreasingPath(int[][] matrix)
if (matrix == null || matrix.length == 0 || matrix[0].length == 0)
return 0;
rows = matrix.length;
columns = matrix[0].length;
int[][] memo = new int[rows][columns];
int ans = 0;
for (int i = 0; i < rows; ++i)
for (int j = 0; j < columns; ++j)
ans = Math.max(ans, dfs(matrix, i, j, memo));
return ans;
public int dfs(int[][] matrix, int row, int column, int[][] memo)
if (memo[row][column] != 0)
return memo[row][column];
++memo[row][column];
for (int[] dir : dirs)
int newRow = row + dir[0], newColumn = column + dir[1];
if (newRow >= 0 && newRow < rows && newColumn >= 0 && newColumn < columns && matrix[newRow][newColumn] > matrix[row][column])
memo[row][column] = Math.max(memo[row][column], dfs(matrix, newRow, newColumn, memo) + 1);
return memo[row][column];
以上是关于矩阵中的最长递增路径的主要内容,如果未能解决你的问题,请参考以下文章