题解 | #广度遍历数岛屿#
岛屿数量
http://www.nowcoder.com/practice/0c9664d1554e466aa107d899418e814e
class Solution {
public:
/**
* 判断岛屿数量
* @param grid char字符型vector<vector<>>
* @return int整型
*/
//广度遍历解决
void DFS(int x,int y,int w,int h,vector<vector<char> >& grid)
{
if(x<0||x>=w||y<0||y>=h||grid[y][x]=='0')
return ;
grid[y][x]='0';
DFS(x+1,y,w,h,grid);
DFS(x-1,y,w,h,grid);
DFS(x,y+1,w,h,grid);
DFS(x,y-1,w,h,grid);
}
int solve(vector<vector<char> >& grid) {
// write code here
int h=grid.size();
int w=grid[0].size();
int ans=0;
for(int i=0;i<grid.size();i++)
{
for(int j=0;j<grid[0].size();j++)
{
if(grid[i][j]=='1'){
cout<<i<<" "<<j<<endl;
ans+=1;
DFS(j,i,w,h,grid);
}
}
}
return ans;
}
};

