邻接矩阵的DFS遍历代码模板:
bool flag;
void dfs(vector<vector<int>> &grid, int x, int y) {
static int dx[] = {-1, 0, 1, 0};
static int dy[] = {0, 1, 0, -1};
grid[x][y] = 3; // 标记已访问
for(int i = 0; i < 4; i++) {
int tx = x + dx[i];
int ty = y + dy[i];
if(tx < 0 || ty < 0 || tx >= grid.size() || ty >= grid[0].size()) {
// 只有当前点是0才会有dfs搜索,如果搜到出界了,表明当前点(x,y)就在边界上,不符合封闭岛定义
flag = false;
} else if(grid[tx][ty] == 0) {
dfs(grid, tx, ty);
}
}
}