题解 | #岛屿的最大面积#
岛屿的最大面积
http://www.nowcoder.com/practice/5568943d3a08403f932a5e54ec3ece71
dfs+染色法
每次搜索到的岛屿就将岛屿淹没
class Solution {
public:const int dx[4]={0,0,1,-1};
const int dy[4]={1,-1,0,0};
int ma=0;
void dfs(vector<vector<int> >& grid,int x,int y,int& s){
s+=1;
grid[x][y]=0;
ma=max(ma,s);
for(int i=0;i<4;i++){
int mx=dx[i]+x;
int my=dy[i]+y;
if(mx>=0&&mx<grid.size()&&my>=0&&my<grid[0].size()&&grid[mx][my]==1){
dfs(grid,mx,my,s);
}
}
}
int maxAreaIsland(vector<vector<int> >& grid) {
for(int i=0;i<grid.size();i++){
for(int j=0;j<grid[0].size();j++){
if(grid[i][j]==1){
int s=0;
dfs(grid,i,j,s);
}
}
}
return ma;
}
};
