思路差不多,我的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

相关推荐

牛客48826091...:哥们胸肌挺好看
点赞 评论 收藏
分享
08-27 21:03
已编辑
成都理工大学 Java
冷花幽露:大概率是了,京东面试就是这样。我上周一面也是20多分钟,面试官问的很刁钻的问题也答上来了,面完过了几天还是没推进,泡池子,昨天一看挂了。如果一面完第2天没有收到2面邀请,基本上不用抱希望了。如果你的bg是985,面试流程也是和我们一样,20多分钟,唯一区别就是面完他们会很快收到二面邮件,而不像我们泡池子然后挂掉
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务