Leetcode 130. 被围绕的区域
对边界的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. 被围绕的区域相关推荐
- LeetCode 130. 被围绕的区域(图的BFS/DFS)
文章目录 1. 题目 2. 解题 2.1 BFS 2.2 DFS 1. 题目 给定一个二维的矩阵,包含 'X' 和 'O'(字母 O). 找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' ...
- LeetCode 130 被围绕的区域
题目描述 给定一个二维的矩阵,包含 'X' 和 'O'(字母 O).找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充. 题解 没有被'X'包围的区域一定在边上,可以从四周 ...
- Leetcode 130. 被围绕的区域 解题思路及C++实现
解题思路: 这是一个典型的深度优先搜索问题,在程序处理过程中,将未被'X'包围的'O'标记为符号'*'. 先遍历数组边界上的字符'O',将其标记为'*',然后对出现'*'的位置,通过递归dfs,遍历其 ...
- Leetcode 130. 被围绕的区域 (每日一题 20210720 同类型题)
'O' 相连的 'O' 最终都会被填充为 'X'.如果两个元素在水平或垂直方向相邻,则称它们是"相连"的. 示例 2:输入:board = [["X"]] 输出 ...
- 130. 被围绕的区域
链接:130. 被围绕的区域 题解:深度优先搜索 class Solution { public:vector<vector<int>> direction{{1, 0},{- ...
- 10.13(129. 求根到叶子节点数字之和 130. 被围绕的区域)
129. 求根到叶子节点数字之和(通过) 思路:递归,前序遍历的应用 效率:100% 程序代码: /*** Definition for a binary tree node.* struct Tre ...
- Leetcode-搜索-130.被围绕的区域(中等)
130. 被围绕的区域 题目如下 解题思路 dfs-c++代码(深搜) bfs-c++代码(广搜) 提交对比 题目如下 解题思路 不被包围的肯定有一边在边界,所以我们从边界遍历,边界遍历可以碰到的0是 ...
- 【LeetCode】130.被围绕的区域
一.题目描述 给定一个二维的矩阵,包含 'X' 和 'O'(字母 O). 找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充. 二.示例 示例: X X X X X O O ...
- 130.被围绕的区域
给定一个二维的矩阵,包含 'X' 和 'O'(字母 O). 找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充. 示例: X X X X X O O X X X O X X ...
最新文章
- .NET平台开源项目速览(2)Compare .NET Objects对象比较组件
- 读书笔记_面向对象葵花宝典_一二章
- shiro 删除用户session_我的shiro之旅: 十二 shiro 踢出用户(同一用户只能一处登录)...
- 计算机意外重启或遇错误无法继续,计算机意外地重新启动或遇到错误如何解决?...
- ci持续集成工程师前景_『中级篇』docker之CI/CD持续集成-项目生成镜像(76)
- swagger 扫描java文档_推荐一款在运行时通过javadoc生成Swagger API文档的库
- Python之路(二)Python基础
- 中兴bsc服务器是什么,中兴BSC内部信令流程介绍
- java thread 内存泄露_记一次ThreadLocal引发的内存泄露
- centos mysql开发包_CentOS 7 安装 MySQL-阿里云开发者社区
- eclipse中export 的jar file与 runnable jar file的区别
- AUTOCAD——图块批量改名
- Xshell6及Xftp6的使用
- 开发请打开Debug模式--Dcat-Admin框架实战(三)
- linux脚本回车键是什么,回车是什么意思 回车键功能介绍
- GitHub爆火 金九银十巨作:拼多多/蚂蚁/百度面经分享
- [旭日x3] 动手实践之bpu_rezie以及简化cpp编译流程
- 偏振1_经过两个偏振片最大光强问题
- 曝光修正相关工作:Related Work on the Exposure Correction
- 基于node的cmd迷你天气查询工具