美文网首页
Leetcode130: 被包围的区域

Leetcode130: 被包围的区域

作者: VIELAMI | 来源:发表于2020-05-06 15:47 被阅读0次

【题目描述】
给定一个二维的矩阵,包含 'X' 和 'O'(字母 O)。
找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充


image.png

【思路】
找到不在边界上的O -> 找到在边界上的O并标记 之后剩下的就是被包围的O 进行变换和还原

void solve(vector<vector<char>>& board) {
    //Leetcode130:被围绕的区域
    int m = board.size();
    int n = board[0].size();
        // 在四条边上搜索,搜索到就进行DFS
    if (m <= 2 || n <= 2) {
        return;
    }
    for (int i = 0; i < board.size(); i++) {
        if (board[i][0] == 'O') dfs(board, i, 0);
        if (board[i][n - 1] == 'O') dfs(board, i, n - 1);
    }
    for (int j = 0; j < n; j++) {
        if (board[0][j] == 'O') dfs(board, 0, j);
        if (board[m - 1][j] == 'O') dfs(board, m - 1, j);
    }

    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            if (board[i][j] == 'O') {
                board[i][j] = 'X';
            }
            else if (board[i][j] == 'M') {
                board[i][j] = 'O';
            }
        }

    }
}
void dfs(vector<vector<char>>& board,int i,int j) {
    if ((i >= 0) && (j >= 0) && (i < board.size()) && (j < board[0].size())) { //判断i,j没有超出范围
        if (board[i][j] == 'O') {
            board[i][j] = 'M';
            dfs(board, i + 1, j);
            dfs(board, i - 1, j);
            dfs(board, i, j + 1);
            dfs(board, i, j - 1);
        }
    }
}

相关文章

  • Leetcode130: 被包围的区域

    【题目描述】给定一个二维的矩阵,包含 'X' 和 'O'(字母 O)。找到所有被 'X' 围绕的区域,并将这些区域...

  • leetcode130 被围绕的区域

    题目 被围绕的区域 分析 题目可以转换成:对每一个在边界上的O开始遍历,标定一篇区域。之后再遍历整个矩阵,没被标定...

  • 130. Surrounded Regions 被包围的区域

    题目链接tag: Medium; DFS; question:  Given a 2D board contain...

  • UIImageView实现部分区域拉伸

    其中被UIEdgeInsetsMake包围的区域会被拉伸

  • 被包围

    星期五下午最后一节雷打不动的自习课就像一面照妖镜,只一眼,就能分辨出学霸、学渣和中不溜混日子的。当然,也有端午这样...

  • 被包围

    似乎不是从今天开始的,但今天的感受却是最最强烈的。 他被落地的新政策搞得昨晚失眠,我被他的抱怨吵的脑袋迟滞发胀。 ...

  • Navigation Mesh与Line-of-Sight Te

    上图是一个由任意凸多边形构成的导航网格,白线包围区域代表着不可进入的障碍区域,红线包围区域则可以进入或穿越。网格中...

  • LeetCode No.14被围绕的区域

    1. LeetCode130题目链接链接 https://leetcode-cn.com/problems/sur...

  • 被包围的我

    今天长沙下起了蒙蒙雨,等了 好久,公交还未到,突然脑海里浮现了另一个等公交的场景…… 这是大概十天前,在公交站等车...

  • 被包围的恐惧

    他们密密麻麻细小极了,我的眼难以见到。 他们是一群,高有五米,长达984米。 他们本该在风里偶尔相见,去在这里拥挤...

网友评论

      本文标题:Leetcode130: 被包围的区域

      本文链接:https://www.haomeiwen.com/subject/rzswghtx.html