题目链接

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相关推荐

  1. 【BFS】LeetCode 130. Surrounded Regions

    LeetCode 130. Surrounded Regions Solution1:我的答案 利用bfs解决,超过98.7%的答案,还不错.关键是简单易懂! class Solution { pub ...

  2. [LeetCode] 130. Surrounded Regions Java

    题目:Given a 2D board containing 'X' and 'O' (the letter O), capture all regions surrounded by 'X'. A ...

  3. 利用BFS和DFS解决 LeetCode 130: Surrounded Regions

    问题来源 此题来源于LEETCODE,具体问题详见下面的链接 https://leetcode.com/problems/surrounded-regions/description/ 问题简述 给定 ...

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

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

  5. 130 Surrounded Regions

    题目链接:https://leetcode.com/problems/surrounded-regions/ 题目: Given a 2D board containing 'X' and 'O', ...

  6. leetcode算法题--Surrounded Regions

    原题链接:https://leetcode.com/problems/surrounded-regions/ class Solution {public:int m, n;void solve(ve ...

  7. 130. Surrounded Regions 被围绕的区域

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

  8. 130. Surrounded Regions

    题目描述 解题思路==先将不要变的O换为1,再将其余的O变成X,最后再将1变回为O 代码如下 class Solution{ public:void solve(vector<vector< ...

  9. Leetcode python《热题 HOT 100》15. 三数之和

    Leetcode python 之 <热题 HOT 100>:https://leetcode-cn.com/problemset/hot-100/ 15. 三数之和 给定一个包含 n 个 ...

最新文章

  1. 白岩松西湖大学演讲:科研人要学会讲故事,可以从发朋友圈开始练
  2. ajax从页面向action传递json 公司--》
  3. SQL Try Catch
  4. 图解SQL Server 安全函数的使用
  5. iis下的php不显示报错信息,IIS环境下 PHP无法显示错误信息怎么办
  6. 《深入浅出数据分析》第十二章——R语言lattice数据包
  7. python安装不了是什么问题_安装不上python的模块怎么办?别怕,我这有妙招!
  8. oracle open_link,open_links_per_instance 和 open_links 参数说明
  9. 红旗linux6.0安装不了,在红旗linux6.0中安装vmware tools遇到的问题
  10. Web服务器(中间件)漏洞
  11. 使用fieldset、label标签制作form表单
  12. 关于数据准备时,自动棌番的主键,这一字段数据的注意(IT总结之五)
  13. apache支持.htaccess
  14. 编译修改OpenCV的rpath
  15. 了解Go编译处理(一)—— go tool
  16. DOS处理 CMD提速 BAT恶搞
  17. EXCEL MATCH函数
  18. 关于pytorch等环境配置记录
  19. Hyper-v集群高可用性配置
  20. 效果图网站、外包平台接单平台有哪些?

热门文章

  1. Web前端的性能优化,需要怎么做?
  2. php对键盘控制,键盘控制 - 陈映亮的个人空间 - OSCHINA - 中文开源技术交流社区...
  3. html标签 .doc,HTML标签.doc
  4. linux从虚拟磁盘启动,Linux虚拟磁盘实战
  5. 安装caffe时出现“MySQL”不是内外不wenjian
  6. 【虹膜识别】+【开源代码】虹膜识别--步骤讲解及算法复现,虹膜表征:基于虹膜反映点的健康监测
  7. Computational Learning Theory - VC Dimension
  8. DI、IOC基础学习笔记
  9. 课程作业01——从命令行接收多个数字,求和之后输出结果
  10. 指定精确度(*号的使用)