1 DFS

  • 遍历棋盘边界,将边界对应的所有O进行dfs遍历成#
  • 遍历棋盘,将所有中间O遍历成X
  • 遍历棋盘,将所有中间#恢复成O
class Solution {public:int n, m;void dfs(vector<vector<char>>& board, int x, int y) {if (x < 0 || y < 0 || x >= n || y >= m || board[x][y] != 'O') return;board[x][y] = '#';dfs(board, x + 1, y);dfs(board, x - 1, y);dfs(board, x, y + 1);dfs(board, x, y - 1);}void solve(vector<vector<char>>& board) {n = board.size();m = board[0].size();// 第1行和最后1行中的O进行dfs变成其他图标for (int i = 0; i < n; i++) {if (board[i][0] == 'O') dfs(board, i, 0);if (board[i][m - 1] == 'O')  dfs(board, i, m - 1);}// 第1列和最后1列中的O进行dfs变成其他图标for (int i = 0; i < m; i++) {if (board[0][i] == 'O') dfs(board, 0, i);if (board[n - 1][i] == 'O')  dfs(board, n - 1, i);}// 将所有O变成X(可优化i从1开始遍历)for (int i = 1; i < n - 1; i++)for (int j = 1; j < m - 1; j++) if (board[i][j] == 'O') board[i][j] = 'X';// 将所有#恢复成Ofor (int i = 0; i < n; i++)for (int j = 0; j < m; j++) if (board[i][j] == '#') board[i][j] = 'O'; }
};

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

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

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

  2. 130. 被围绕的区域

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

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

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

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

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

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

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

  6. LeetCode 130 被围绕的区域

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

  7. 130.被围绕的区域

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

  8. leetcode 130. Surrounded Regions | 130. 被围绕的区域(DFS递归“感染“思路)

    题目 https://leetcode.com/problems/surrounded-regions/ 题解 Related Topics 说是并查集问题,然而我并没有用到. 带有 visited ...

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

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

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

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

最新文章

  1. [译]在启用浏览器功能的INFOPATH表单中实现基于SQL SERVER的多级联动的下拉式列表...
  2. 测试C#代码执行时间
  3. 苹果手机信号是哪个服务器,苹果手机信号差是网络问题还是手机问题
  4. SVN Could not open the requested SVN filesystem解决办法
  5. NET-TreeView控件说明
  6. my batis plus 小数没有0_北师大版五年级第一单元小数除法知识点总结及易错题解析(1)...
  7. MATLAB官方机器学习入门教程
  8. 基于JAVA在线招生系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  9. 万能密码 php,PHP 万能密码
  10. pxc部署和配置详解
  11. python支付宝二维码支付源代码
  12. MySQL5.6 GTID
  13. 华为这个广告,我愿一辈子不买苹果!
  14. echarts之toolbox-x,y
  15. Day1ps设计基础作业第一章第二章
  16. PS一次性导出多倍图@1x、@2x、@3x
  17. 用软笔,写慢字:键盘时代如何拯救书法?
  18. 鸿蒙系统名字来历,鸿蒙系统名字含义_华为鸿蒙操作系统自己研发吗
  19. win7计算机收藏夹位置,收藏夹位置,教您ie浏览器收藏夹的位置在哪
  20. colaboratory报错:CUDA status Error: file: ./src/blas_kernels.cu : ()

热门文章

  1. steam (游戏平台)
  2. Geant4学习一:写一个简单程序
  3. 电路matlab仿真,电路matlab仿真.doc
  4. matlab仿真三相整流电路设计,基于MATLAB的三相整流电路仿真研究毕业设计
  5. 程学旗 计算机,专家人才库数据----中国科学院计算技术研究所
  6. 打开Excel超链接提示由于本机的限制该操作已被取消
  7. 苹果iphone免越狱使用iTunes获取旧版本APP
  8. 浅谈两轮平衡车的控制原理(续)
  9. unity 走马灯packageManager
  10. wpf基于DevExpress实现折线图的两种方法