class Solution {
public:
/**
* 判断岛屿数量
* @param grid char字符型vector<vector<>>
* @return int整型
*/
int solve(vector<vector<char> >& grid) {
int row = grid.size();
int col = grid[0].size();
int res = 0;
vector<vector<bool>> visited(row, vector<bool>(col));
for(int i=0; i<row; i++){
for(int j=0; j<col; j++){
if(grid[i][j] == '0' || visited[i][j]) continue;
dfs(grid, visited, i, j);
res++;
}
}
return res;
// write code here
}
void dfs(vector<vector<char>>& grid, vector<vector<bool>>& visited, int i, int j){
if(i>=grid.size() || i<0 || j>=grid[0].size() || j<0 || visited[i][j]
|| grid[i][j] == '0')
return;
visited[i][j] = true;
dfs(grid, visited, i+1, j);
dfs(grid, visited, i-1, j);
dfs(grid, visited, i, j+1);
dfs(grid, visited, i, j-1);
}
};
https://www.cnblogs.com/grandyang/p/4402656.html

京公网安备 11010502036488号