leetcode 130 被围绕的区域

简介: leetcode 130 被围绕的区域

被围绕的区域


a5767cafd0864e33b2a918fed04c7683.png

class Solution {
public:
    int m=0 , n=0;
    bool board_flag = false;
    int dir[4][2] = {0,-1,0,1,-1,0,1,0};
    void dfs(vector<vector<char>>& board ,  vector<vector<bool>> &path ,int x , int y ,bool exchange)
    {   
        for(int i=0 ; i<4 ;i++)
        {
            int next_x = x + dir[i][0];
            int next_y = y + dir[i][1];
            if(next_x<0 || next_x >= m || next_y<0||next_y>=n)
            {
                board_flag = true;
                continue;
            }
            if(exchange == false && board[next_x][next_y] == 'O' && path[next_x][next_y] == false)
            {
                path[next_x][next_y] = true;
                dfs(board,path,next_x,next_y,exchange);
            }
            if(exchange == true && board[next_x][next_y] == 'O')
            {
                board[next_x][next_y] = 'X';
                dfs(board,path,next_x,next_y,exchange);
            }
        }
    }
    void solve(vector<vector<char>>& board) {
        m = board.size();
        n = board[0].size();
        vector<vector<bool>> path(m,vector<bool>(n,false));
        for(int i=0 ; i<m ;i++)
        {
            for(int j=0 ; j<n ;j++)
            {
                if(board[i][j] == 'O' && path[i][j] == false)
                {
                    board_flag = false;
                    path[i][j] = true;
                    dfs(board,path,i,j,false);
                    if(board_flag == false)
                    {
                        board[i][j] = 'X';
                        dfs(board,path,i,j,true);
                    } 
                }
            }
        }
    }
};
相关文章
|
6天前
|
算法 前端开发
3028. 边界上的蚂蚁
3028. 边界上的蚂蚁
24 0
|
6天前
leetcode-130:被围绕的区域
leetcode-130:被围绕的区域
20 0
|
10月前
|
定位技术 容器
高德地图进阶开发实战案例(10):地图选取起终点OD位置经纬度的驾车规划路线
高德地图进阶开发实战案例(10):地图选取起终点OD位置经纬度的驾车规划路线
90 0
|
6天前
|
机器学习/深度学习 人工智能 安全
【数据空间】浅谈信息革命背景下数字技术的变与不变
【数据空间】浅谈信息革命背景下数字技术的变与不变
70 0
|
10月前
|
前端开发 定位技术 容器
高德地图进阶开发实战案例(7):点是否在多边形内和内外部的数量统计的解决方案
高德地图进阶开发实战案例(7):点是否在多边形内和内外部的数量统计的解决方案
73 0
|
11月前
|
存储 分布式计算 资源调度
【大数据学习篇9】各区域热门商品Top3分析
【大数据学习篇9】各区域热门商品Top3分析
110 0
|
12月前
|
机器学习/深度学习 存储 SQL
带你读《2022年开源大数据热力报告》——TOP项目热力跃迁逻辑研究
带你读《2022年开源大数据热力报告》——TOP项目热力跃迁逻辑研究
165 0
被围绕的区域(dfs)
给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。 找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。
69 0
被围绕的区域(dfs)
☆打卡算法☆LeetCode 130. 被围绕的区域 算法解析
“给定一个矩阵,矩阵由字符X和O组成,找出所有被X包围的区域,将区域内的所有O替换成X。”