class Solution {
public:
/**
* 判断岛屿数量
* @param grid char字符型vector<vector<>>
* @return int整型
*/
int nums;
vector<vector<char> > grid;
void dfs(int x,int y){
grid[x][y]='0';
if(x+1<grid.size()&&grid[x+1][y]=='1'){
dfs(x+1,y);
}
if(x-1>=0&&grid[x-1][y]=='1'){
dfs(x-1,y);
}
if(y+1<grid[0].size()&&grid[x][y+1]=='1'){
dfs(x,y+1);
}
if(y-1>=0&&grid[x][y-1]=='1'){
dfs(x,y-1);
}
}
int solve(vector<vector<char> >& _grid) {
nums=0;
if(_grid.size()==0) return nums;
this->grid=_grid;
for(int i=0;i<grid.size();i++){
for(int j=0;j<grid[0].size();j++){
if(grid[i][j]=='1'){
dfs(i,j);
nums++;
}
}
}
return nums;
}
};