import java.util.*;
public class Solution {
public int maxAreaIsland (int[][] grid) {
//边界条件判断
if(grid==null||grid.length==0) return 0;
int Smax=0; //记录岛屿的最大面积
//两个for循环遍历每一个格子
for(int i=0;i<grid.length;i++){
for(int j=0;j<grid[0].length;j++){
if(grid[i][j]==1){
int S=dfs(grid,i,j);//记录当前岛屿的面积
Smax=Math.max(Smax,S);
}
}
}
return Smax;
}
//这个方法把当前格子以及他邻近为1的格子都置为0
public int dfs(int[][] grid,int i,int j){
//边界条件判断,不能越界
if(i<0||i>=grid.length||j<0||j>=grid[0].length||grid[i][j]==0)
return 0;
grid[i][j]=0;
return dfs(grid,i-1,j)+dfs(grid,i+1,j)+dfs(grid,i,j-1)+dfs(grid,i,j+1)+1;
}
}