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;
    }
}