DFS-岛屿类问题解决思路
常见的背包问题有
1、岛屿个数与问题
2、岛屿面积问题
3、包围问题
核心模板–漫水填充算法
/* 满水填充算法 */
int dx[4] = {0 , 0, 1, -1};
int dy[4] = {1 , -1, 0, 0};
int n;
int m;
int count;
void dfs(vector<vector<int>> &grid, int i , int j) {
if (grid[i][j] != 1) {
return;
}
grid[i][j] = -1;
count ++;//如果计算面积就添加
for (int k = 0; k < 4; k++) {
int x = i + dx[k];
int y = j + dy[k];
if (x >= 0 && y >= 0 && x < n && y < m) {
dfs(grid, x, y);
}
}
}
参考链接