leetcode @python 130. Surrounded Regions
题目链接
https://leetcode.com/problems/surrounded-regions/
题目原文
Given a 2D board containing 'X' and 'O', capture all regions surrounded by 'X'.
A region is captured by flipping all 'O's into 'X's in that surrounded region.
For example,
X X X X
X O O X
X X O X
X O X X
After running your function, the board should be:
X X X X
X X X X
X X X X
X O X X
题目大意
给出一个铺满O或者X的区域,将被X围住的O都换成X
解题思路
使用BFS从边上开始搜索,如果是'O',那么搜索'O'周围的元素,并将'O'置换为'D',这样每条边都DFS或者BFS一遍。而内部的'O'是不会改变的。这样下来,没有被围住的'O'全都被置换成了'D',被围住的'O'还是'O',没有改变。然后遍历一遍,将'O'置换为'X',将'D'置换为'O'。
代码
class Solution(object):def solve(self, board):""":type board: List[List[str]]:rtype: void Do not return anything, modify board in-place instead."""def fill(x, y):if x < 0 or x > m - 1 or y < 0 or y > n - 1 or board[x][y] != 'O':returnqueue.append((x, y))board[x][y] = 'D'def bfs(x, y):if board[x][y] == 'O':fill(x, y)while queue:cur = queue.pop(0)i = cur[0]j = cur[1]fill(i + 1, j)fill(i - 1, j)fill(i, j + 1)fill(i, j - 1)if len(board) == 0:returnm = len(board)n = len(board[0])queue = []for i in range(n):bfs(0, i)bfs(m - 1, i)for j in range(1, m - 1):bfs(j, 0)bfs(j, n - 1)for i in range(m):for j in range(n):if board[i][j] == 'D':board[i][j] = 'O'elif board[i][j] == 'O':board[i][j] = 'X'
转载于:https://www.cnblogs.com/slurm/p/5349456.html
leetcode @python 130. Surrounded Regions相关推荐
- 【BFS】LeetCode 130. Surrounded Regions
LeetCode 130. Surrounded Regions Solution1:我的答案 利用bfs解决,超过98.7%的答案,还不错.关键是简单易懂! class Solution { pub ...
- [LeetCode] 130. Surrounded Regions Java
题目:Given a 2D board containing 'X' and 'O' (the letter O), capture all regions surrounded by 'X'. A ...
- 利用BFS和DFS解决 LeetCode 130: Surrounded Regions
问题来源 此题来源于LEETCODE,具体问题详见下面的链接 https://leetcode.com/problems/surrounded-regions/description/ 问题简述 给定 ...
- leetcode 130. Surrounded Regions | 130. 被围绕的区域(DFS递归“感染“思路)
题目 https://leetcode.com/problems/surrounded-regions/ 题解 Related Topics 说是并查集问题,然而我并没有用到. 带有 visited ...
- 130 Surrounded Regions
题目链接:https://leetcode.com/problems/surrounded-regions/ 题目: Given a 2D board containing 'X' and 'O', ...
- leetcode算法题--Surrounded Regions
原题链接:https://leetcode.com/problems/surrounded-regions/ class Solution {public:int m, n;void solve(ve ...
- 130. Surrounded Regions 被围绕的区域
给定一个二维的矩阵,包含 'X' 和 'O'(字母 O). 找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充. 示例: X X X X X O O X X X O X X ...
- 130. Surrounded Regions
题目描述 解题思路==先将不要变的O换为1,再将其余的O变成X,最后再将1变回为O 代码如下 class Solution{ public:void solve(vector<vector< ...
- Leetcode python《热题 HOT 100》15. 三数之和
Leetcode python 之 <热题 HOT 100>:https://leetcode-cn.com/problemset/hot-100/ 15. 三数之和 给定一个包含 n 个 ...
最新文章
- 白岩松西湖大学演讲:科研人要学会讲故事,可以从发朋友圈开始练
- ajax从页面向action传递json 公司--》
- SQL Try Catch
- 图解SQL Server 安全函数的使用
- iis下的php不显示报错信息,IIS环境下 PHP无法显示错误信息怎么办
- 《深入浅出数据分析》第十二章——R语言lattice数据包
- python安装不了是什么问题_安装不上python的模块怎么办?别怕,我这有妙招!
- oracle open_link,open_links_per_instance 和 open_links 参数说明
- 红旗linux6.0安装不了,在红旗linux6.0中安装vmware tools遇到的问题
- Web服务器(中间件)漏洞
- 使用fieldset、label标签制作form表单
- 关于数据准备时,自动棌番的主键,这一字段数据的注意(IT总结之五)
- apache支持.htaccess
- 编译修改OpenCV的rpath
- 了解Go编译处理(一)—— go tool
- DOS处理 CMD提速 BAT恶搞
- EXCEL MATCH函数
- 关于pytorch等环境配置记录
- Hyper-v集群高可用性配置
- 效果图网站、外包平台接单平台有哪些?
热门文章
- Web前端的性能优化,需要怎么做?
- php对键盘控制,键盘控制 - 陈映亮的个人空间 - OSCHINA - 中文开源技术交流社区...
- html标签 .doc,HTML标签.doc
- linux从虚拟磁盘启动,Linux虚拟磁盘实战
- 安装caffe时出现“MySQL”不是内外不wenjian
- 【虹膜识别】+【开源代码】虹膜识别--步骤讲解及算法复现,虹膜表征:基于虹膜反映点的健康监测
- Computational Learning Theory - VC Dimension
- DI、IOC基础学习笔记
- 课程作业01——从命令行接收多个数字,求和之后输出结果
- 指定精确度(*号的使用)