classSolution{publicintmaxAreaOfIsland(int[][] grid){if(grid ==null){return0;}int res =0;for(int i =0; i < grid.length; i++){for(int j =0; j < grid[0].length; j++){int area =dfs(grid, i, j);
res =Math.max(area, res);}}return res;}privateintdfs(int[][] grid,int i,int j){if(i <0|| j <0|| i >= grid.length || j >= grid[0].length || grid[i][j]==0){return0;}
grid[i][j]=0;return1+dfs(grid, i +1, j)+dfs(grid, i, j +1)++dfs(grid, i -1, j)++dfs(grid, i, j -1);}}
leetcode 463 岛屿的周长
classSolution{publicintislandPerimeter(int[][] grid){if(grid ==null){return0;}for(int i =0; i < grid.length; i++){for(int j =0; j < grid[0].length; j++){if(grid[i][j]==1){returndfs(grid, i, j);}}}return0;}privateintdfs(int[][] grid,int i,int j){if(i <0|| j <0|| i >= grid.length || j >= grid[0].length){return1;}if(grid[i][j]==0){return1;// 对应海洋}if(grid[i][j]!=1){// 当前是已经遍历过的陆地格子return0;}
grid[i][j]=2;returndfs(grid, i +1, j)+dfs(grid, i, j +1)+dfs(grid, i -1, j)+dfs(grid, i, j -1);}}