正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史记录

版本 1 下一个 »

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