要求:找连起来的’1’
思路:dfs,有个坑是1不是数字而是字符
class Solution {
public:
void dfs(int i,int j,vector<vector<char>>& grid){
if(i<0||i>=grid.size()||j<0||j>=grid[0].size()||grid[i][j]=='0')return;
grid[i][j]='0';
int di[4]={0,0,1,-1};
int dj[4]={1,-1,0,0};
for(int k=0;k<4;++k){
dfs(i+di[k],j+dj[k],grid);
}
}
int numIslands(vector<vector<char>>& grid) {
int m=grid.size(),n=grid[0].size();
int count=0;
for(int i=0;i<m;++i)
for(int j=0;j<n;++j)
if(grid[i][j]=='1'){
dfs(i,j,grid);
++count;
}
return count;
}
};