1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public int findMaxFish(int[][] grid) { int row=grid.length; int col=grid[0].length; int res=0; for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { if(grid[i][j]!=0){ res=Math.max(res,dfs(grid,row,col,i,j)); } } } return res; }
private int dfs(int[][] grid, int row, int col, int i, int j){ if(i<0 || i>=row || j<0 || j>=col || grid[i][j]==0){ return 0; } int res=grid[i][j]; grid[i][j]=0; res+=dfs(grid,row,col,i+1,j); res+=dfs(grid,row,col,i-1,j); res+=dfs(grid,row,col,i,j+1); res+=dfs(grid,row,col,i,j-1); return res; }
|