邻接矩阵的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); } } }