思路差不多,我的AC了 import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Main { /*请完成下面这个函数,实现题目要求的功能 当然,你也可以不按照下面这个模板来作答,完全按照自己的想法来 ^-^  ******************************开始写代码******************************/     static int longpath(int[][] matrix) {         int rows = matrix.length;         int cols = matrix[0].length;         int path = Integer.MIN_VALUE;         for(int i=0;i<rows;i++) {             for(int j=0;j<cols;j++) {                 boolean[][] visited = new boolean[rows][cols];                 int res = helper(matrix, rows, cols, i, j, visited);                 System.out.println(res);                 path = Math.max(path, res);             }         }         return path;     } /******************************结束写代码******************************/     public static int helper(int[][] matrix, int rows, int cols, int x, int y, boolean[][] visited) {         if(x<0 || x>=rows || y<0 || y>=cols || visited[x][y])             return 0;         visited[x][y] = true;         int res1 = 1;         int res2 = 1;         int res3=1;         int res4=1;         if(x+1<rows && matrix[x+1][y] > matrix[x][y])             res1+=helper(matrix,rows,cols,x+1,y,visited);         if(x-1>=0 && matrix[x-1][y] > matrix[x][y])             res2+=helper(matrix,rows,cols,x-1,y,visited);         if(y+1<cols && matrix[x][y+1] > matrix[x][y])             res3+=helper(matrix,rows,cols,x,y+1,visited);         if(y-1>=0 && matrix[x][y-1] > matrix[x][y])             res4+=helper(matrix,rows,cols,x,y-1,visited);         visited[x][y] = false;         return Math.max(Math.max(res1, res2), Math.max(res3, res4));     }               public static void main(String[] args){         Scanner in = new Scanner(System.in);         int res;              int _matrix_rows = 0;         int _matrix_cols = 0;         _matrix_rows = Integer.parseInt(in.nextLine().trim());         _matrix_cols = Integer.parseInt(in.nextLine().trim());                  int[][] _matrix = new int[_matrix_rows][_matrix_cols];         for(int _matrix_i=0; _matrix_i<_matrix_rows; _matrix_i++) {             for(int _matrix_j=0; _matrix_j<_matrix_cols; _matrix_j++) {                 _matrix[_matrix_i][_matrix_j] = in.nextInt();                              }         }                  if(in.hasNextLine()) {           in.nextLine();         }            res = longpath(_matrix);         System.out.println(String.valueOf(res));         } }
点赞 1

相关推荐

牛客网
牛客企业服务