对边界的O进行dfs,把边界O的’O’变为’o’
然后把所有的’O’【非边界O】变为’X’,’o’【边界O】重新变为’O’

class Solution {
public:int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0},n,m;void dfs(int row,int col,vector<vector<char>>& board){board[row][col]='o';for(int i=0;i<4;++i)if(row+dx[i]>=0 && row+dx[i]<n && col+dy[i]>=0 && col+dy[i]<m && board[row+dx[i]][col+dy[i]]=='O') dfs(row+dx[i],col+dy[i],board);}void solve(vector<vector<char>>& board) {n=board.size(),m=n?board[0].size():0;if(!(m&n)) return;for(int i=0;i<n;++i){if(board[i][0]=='O') dfs(i,0,board);if(board[i][m-1]=='O') dfs(i,m-1,board);}for(int j=0;j<m;++j){if(board[0][j]=='O') dfs(0,j,board);if(board[n-1][j]=='O') dfs(n-1,j,board);}for(int i=0;i<n;++i)for(int j=0;j<m;++j)if(board[i][j]=='O') board[i][j]='X';else if(board[i][j]=='o') board[i][j]='O';}
};

Leetcode 130. 被围绕的区域相关推荐

  1. LeetCode 130. 被围绕的区域(图的BFS/DFS)

    文章目录 1. 题目 2. 解题 2.1 BFS 2.2 DFS 1. 题目 给定一个二维的矩阵,包含 'X' 和 'O'(字母 O). 找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' ...

  2. LeetCode 130 被围绕的区域

    题目描述 给定一个二维的矩阵,包含 'X' 和 'O'(字母 O).找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充. 题解 没有被'X'包围的区域一定在边上,可以从四周 ...

  3. Leetcode 130. 被围绕的区域 解题思路及C++实现

    解题思路: 这是一个典型的深度优先搜索问题,在程序处理过程中,将未被'X'包围的'O'标记为符号'*'. 先遍历数组边界上的字符'O',将其标记为'*',然后对出现'*'的位置,通过递归dfs,遍历其 ...

  4. Leetcode 130. 被围绕的区域 (每日一题 20210720 同类型题)

    'O' 相连的 'O' 最终都会被填充为 'X'.如果两个元素在水平或垂直方向相邻,则称它们是"相连"的. 示例 2:输入:board = [["X"]] 输出 ...

  5. 130. 被围绕的区域

    链接:130. 被围绕的区域 题解:深度优先搜索 class Solution { public:vector<vector<int>> direction{{1, 0},{- ...

  6. 10.13(129. 求根到叶子节点数字之和 130. 被围绕的区域)

    129. 求根到叶子节点数字之和(通过) 思路:递归,前序遍历的应用 效率:100% 程序代码: /*** Definition for a binary tree node.* struct Tre ...

  7. Leetcode-搜索-130.被围绕的区域(中等)

    130. 被围绕的区域 题目如下 解题思路 dfs-c++代码(深搜) bfs-c++代码(广搜) 提交对比 题目如下 解题思路 不被包围的肯定有一边在边界,所以我们从边界遍历,边界遍历可以碰到的0是 ...

  8. 【LeetCode】130.被围绕的区域

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

  9. 130.被围绕的区域

    给定一个二维的矩阵,包含 'X' 和 'O'(字母 O). 找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充. 示例: X X X X X O O X X X O X X ...

最新文章

  1. .NET平台开源项目速览(2)Compare .NET Objects对象比较组件
  2. 读书笔记_面向对象葵花宝典_一二章
  3. shiro 删除用户session_我的shiro之旅: 十二 shiro 踢出用户(同一用户只能一处登录)...
  4. 计算机意外重启或遇错误无法继续,计算机意外地重新启动或遇到错误如何解决?...
  5. ci持续集成工程师前景_『中级篇』docker之CI/CD持续集成-项目生成镜像(76)
  6. swagger 扫描java文档_推荐一款在运行时通过javadoc生成Swagger API文档的库
  7. Python之路(二)Python基础
  8. 中兴bsc服务器是什么,中兴BSC内部信令流程介绍
  9. java thread 内存泄露_记一次ThreadLocal引发的内存泄露
  10. centos mysql开发包_CentOS 7 安装 MySQL-阿里云开发者社区
  11. eclipse中export 的jar file与 runnable jar file的区别
  12. AUTOCAD——图块批量改名
  13. Xshell6及Xftp6的使用
  14. 开发请打开Debug模式--Dcat-Admin框架实战(三)
  15. linux脚本回车键是什么,回车是什么意思 回车键功能介绍
  16. GitHub爆火 金九银十巨作:拼多多/蚂蚁/百度面经分享
  17. [旭日x3] 动手实践之bpu_rezie以及简化cpp编译流程
  18. 偏振1_经过两个偏振片最大光强问题
  19. 曝光修正相关工作:Related Work on the Exposure Correction
  20. 基于node的cmd迷你天气查询工具

热门文章

  1. Java找工作的准备点
  2. (DDS)正弦波形发生器——幅值、频率、相位可调(一)
  3. fft 估计载波频率程序_fft频率估计
  4. cad lisp 示坡线_示坡线画法图文教程
  5. zke电池测试 软件,EBC-X系列电池测试仪使用说明.pdf
  6. 套接字I/O模型-WSAEventSelect(转载)
  7. 区块链在车联网数据共享领域的研究进展
  8. 小米运维实习生被开除:竟是因为没有用到高防服务器
  9. 小米十周年雷军演讲全文:和这个伟大时代同行,是最大的荣幸
  10. UILabel添加下划线