class Solution {
public:
int maxn = 0;
int maxAreaOfIsland(vector<vector<int>>& grid) {
int area = 0;
for(int i = 0;i < grid.size();i++){
for(int j = 0;j < grid[0].size();j++){
if(grid[i][j] == 1){
area = dfs(i,j,grid);//以该点为中心进行搜索
maxn = max(maxn,area);
}
}
}
return maxn;
}
int dfs(int x,int y,vector<vector<int>>& grid){
if(x == grid.size() || x < 0) return 0;
if(y == grid[0].size() || y < 0) return 0;
if(grid[x][y] == 1){
grid[x][y] = 0;//搜索过的岛屿直接记为0
return 1+dfs(x-1,y,grid)+dfs(x+1,y,grid)+dfs(x,y+1,grid)+dfs(x,y-1,grid);
}
return 0;
}
};