题解
刚刚做了一下,在做完刚才这题之后这道题就很好做了。
dfs 爆搜即可,进行上下左右的搜索找到一块。
代码
class Solution {
public:
void dfs(vector<vector<char>>&grid ,int i,int j){
if(i >= 0 && i < grid.size()&& j >= 0 && j < grid[0].size()&& grid[i][j] == '1'){
grid[i][j] = '0';
dfs(grid,i+1,j);
dfs(grid,i,j+1);
dfs(grid,i-1,j);
dfs(grid,i,j-1);
}
}
int numIslands(vector<vector<char>>& grid) {
int res = 0;
int row = grid.size();
int col = grid[0].size();
for(int i = 0; i < row; i++){
for(int j = 0; j < col; j++){
if(grid[i][j] == '1'){
//cout<<
dfs(grid,i,j);
res++;
}
}
}
return res;
}
};