一、题目内容
二、题解
解法1:
思路
代码
public class Solution { private int maxans = 0; public int solve (int[][] matrix) { // write code here if (matrix == null || matrix.length == 0 || matrix.length == 0) { return 0; } int rows = matrix.length; int cols = matrix[0].length; int[][] visited = new int[rows][cols]; for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { recur(matrix, visited, i, j, -1, 0); } } return maxans; } private void recur(int[][] matrix, int[][] visited, int i, int j, int cur, int step){ if (i < 0 || i > matrix.length - 1 || j < 0 || j > matrix[0].length - 1 || visited[i][j] == 1 || cur >= matrix[i][j]) { return; } step++; maxans = Math.max(maxans,step); visited[i][j] = 1; recur(matrix,visited,i-1,j,matrix[i][j],step); recur(matrix,visited,i,j-1,matrix[i][j],step); recur(matrix,visited,i+1,j,matrix[i][j],step); recur(matrix,visited,i,j+1,matrix[i][j],step); visited[i][j] = 0; }}