class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 判断岛屿数量
* @param grid char字符型vector<vector<>>
* @return int整型
*/
void dfs(vector<vector<char> >& grid,int i,int j){
int m,n;
m = grid.size();
n = grid[0].size();
grid[i][j]='0';
if(i-1>=0 && grid[i-1][j]=='1') dfs(grid,i-1,j);
if(j-1>=0 && grid[i][j-1]=='1') dfs(grid,i,j-1);
if(i+1<=m-1 && grid[i+1][j]=='1') dfs(grid,i+1,j);
if(j+1<=n-1 && grid[i][j+1]=='1') dfs(grid,i,j+1);
}
int solve(vector<vector<char> >& grid) {
// write code here
if(grid.empty()) return 0;
int m,n;
m = grid.size();
n = grid[0].size();
int res=0;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(grid[i][j]=='1') {res++;dfs(grid,i,j);}
}
}
return res;
}
};