1.深搜(沉岛)
class Solution {
public:
int maxAreaOfIsland(vector<vector<int>>& grid) {
int ans=0;
for(int i=0;i<grid.size();i++){
for(int j=0;j<grid[0].size();j++){
ans=max(ans,dfs(grid,i,j));
}
}
return ans;
}
int dfs(vector<vector<int>>& grid,int cur_i,int cur_j){
if (cur_i < 0 || cur_j < 0 || cur_i == grid.size() || cur_j == grid[0].size() || grid[cur_i][cur_j] != 1) {
return 0;
}
grid[cur_i][cur_j]=0;
int di[4]={0,0,1,-1};
int dj[4]={1,-1,0,0};
int ans=1;
for(int i=0;i<4;i++){
ans+=dfs(grid,cur_i+di[i],cur_j+dj[i]);
}
return ans;
}
};