[leetcode] 130. Surrounded Regions @ python

python-LeetCode 130. 被围绕的区域 题目:给定一个二维的矩阵,包含'X'和'O'(字母 O),找到所有被'X'围绕的区域,并将这些区域里所有的'O'用'X'填充。 思路:任何边界上的'O'都不会被填充为'X'。 任何不在边界上,或不与边界上的'O'相连的'O'最终都会被填充为'X'。如果两个元素在水平或垂直方向相邻,则称它们是“相连”的。 我们对边界的O进行dfs,先把边界O的’O’变为“ * ”,然后对边界上的" O"进行DFS,和它连通的‘ O’,都标记为‘ * ’,最后在遍历数组,把‘ O’... 阅读详情

原题

Given a 2D board containing ‘X’ and ‘O’ (the letter O), capture all regions surrounded by ‘X’.

A region is captured by flipping all 'O’s into 'X’s in that surrounded region.

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
Explanation:

Surrounded regions shouldn’t be on the border, which means that any ‘O’ on the border of the board are not flipped to ‘X’. Any ‘O’ that is not on the border and it is not connected to an ‘O’ on the border will be flipped to ‘X’. Two cells are connected if they are adjacent cells connected horizontally or vertically.

解法

BFS. 首先找出在边界的O, 将它们加到队列中, 然后对它们进行BFS搜索, 将它和它相邻的O转化为D. 棋盘里剩下的O则是被X包围住的O, 遍历棋盘, 将O改为X, 将D还原为O.
Time: O(n)
Space: O(n)

代码

class Solution(object):
    def solve(self, board):
        """
        :type board: List[List[str]]
        :rtype: None Do not return anything, modify board in-place instead.
        """
        if not board: return
        row, col = len(board), len(board[0])
        q = collections.deque()
        
        # get the index of all O on the boarder
        for r in range(row):
            for c in range(col):
                if r in [0, row-1] or c in [0, col-1] and board[r][c]=='O':
                    q.append((r,c))
                    
        # bfs, make the adjacent O into D
        while q:
            x, y = q.popleft()
            if 0 <= x < row and 0 <= y < col and board[x][y] == 'O':
                board[x][y] = 'D'              
                for dx, dy in [(-1,0),(1,0),(0,-1),(0,1)]:                
                    q.append((x+dx, y+dy))
                    
        # make the rest of O into X and make the D into 0
        for r in range(row):
            for c in range(col):
                if board[r][c] == 'O':
                    board[r][c] = 'X'
                elif board[r][c] == 'D':
                    board[r][c] = 'O'
leetcode全套解答python版本 leetcode全套解答python版本。包括更新到10月份的的leetcode 立即下载

相关推荐

SAP面试全过程(已拿offer)

周五打电话给我说过了SAP第一轮面试,第二轮要在下周四北京,这几天终于体会到了什么叫做重压下的感觉,越复习越虚,看别人的面经都感觉卧槽这问题也巨难了吧...连去北京可以见妹子这种事情都感觉一点心情都没有。面前准备固然是要有的,但关键是平时就要有料,多想想自己做的项目。当作一个给自己的提醒吧!

cloudray8580的专栏 4万+

LeetCode 130.被围绕的区域 Python题解

【代码】LeetCode 130.被围绕的区域 Python题解

weixin_45450206的博客 759

C#与西门子PLC通讯——新手快速入门

本文基于C# .Net Core和西门子博图TIA Portal V17搭建。由于手边没有西门子PLC实物,所以采用S7-PLCSIM Advanced V4.0作为模拟PLC,以实现0成本完成通讯测试实例。这篇入门笔记解决了新手第一次上手实践时遇到的坑,并且有意忽略了实际项目中会遇到的逻辑交互和更多的数据格式问题。

吾家有猫名探花的博客 2万+

力扣 leetcode 130. 被围绕的区域(python)

Topic 给你一个 m x n 的矩阵 board ,由若干字符 ‘X’ 和 ‘O’ ,找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。 Example_1 输入:board = [[“X”,“X”,“X”,“X”],[“X”,“O”,“O”,“X”],[“X”,“X”,“O”,“X”],[“X”,“O”,“X”,“X”]] 输出:[[“X”,“X”,“X”,“X”],[“X”,“X”,“X”,“X”],[“X”,“X”,“X”,“X”],[“X”,“O”,“X”,

weixin_50791900的博客 592

禅道18.3版本二开避坑指南:手把手教你扩展自定义报表功能

本文详细介绍了禅道18.3版本的二次开发实践,重点讲解如何扩展自定义报表功能。通过zentaoPHP框架的深度定制,从开发环境搭建到核心数据模型扩展,再到可视化配置和性能优化,手把手教你构建多维报表分析系统,满足企业级项目管理需求。

day7的博客 370

EEVDF调度算法核心实现解析(一)

本文深入解析Linux kernel 6.6引入的EEVDF调度算法核心实现,详细讲解其基于虚拟截止时间(virtual deadline)的进程挑选机制和红黑树优化设计。通过代码实例展示算法如何平衡系统响应速度与公平性,特别适合需要优化Linux系统性能的开发者参考。

weixin_42522953的博客 478

LeetCode Surrounded Regions

有一个二维的面板,上面由”X”或者”O”填充。现在要求将被”X”包围的”O”都改成”X”。

DRFish 1428

2.数字芯片时序正确的前提—Max-transition

芯片物理设计中最基本的Max-transition检查

weixin_43868998的博客 5426

Leetcode 130. Surrounded Regions(python+cpp)

Leetcode 130. Surrounded Regions题目解析 题目 解析 这道题目的关键在于反向思路。如果要去判断某个O所在的位置是不是被包围,挺困难的,所以反向去找那些没有被包围的所有O的位置,而题目里明确说了,在四条boundary上的O是不被包围的。这应该是最straight forward的方法了,不过从提交结果来看速度还是比较慢。具体流程如下: 从四条边界上找所有O的位置,这些O是最简单的可以确认是不被包围的点。那么进一步的就可以知道和这些O直接相连的点也肯定是不被包围的 从这些点

qq_37821701的博客 567

ZED2双目相机运行VINS-FUSION初试

基于ZED2运行VINS-MONO的经验,在运行VINS-FUSION前有几点tips想跟大家分享,应该能在运行的过程中避免一些踩坑吧。 TIPs 1)关于zed2标定 开始使用Kalibr进行相机单目/双目及联合标定,虽然重投影误差最高也就5个像素,但实际使用效果却并不好,故建议大家相机内参还是从ZED2相机发布出的topic获取或可尝试/usr/local/zed/settings文件下的参数文档 另,启动ZED2.launch的时候,会有一个相机(一般是左目)和IMU的轴系转换关系Camera-IMU

xiaojinger_123的博客 5356

STM32F407最小系统硬件设计与CubeMX工程实践

嵌入式最小系统是MCU功能实现的物理基础,其核心涵盖供电网络、时钟架构、复位机制与调试接口四大模块。基于Cortex-M4内核的STM32F407对电源纹波、晶振稳定性及信号完整性提出严苛要求:模拟电源VDDA需<10mV纹波,HSE晶振布线须满足短距直连与匹配电容精准配置,SWD调试接口依赖50Ω阻抗控制与端接防护。这些硬件约束直接映射至STM32CubeMX配置——如RCC时钟树参数必须与实物晶振频率严格一致,GPIO模式需匹配外设电气特性(如I2C必选开漏),否则将引发通信失败或启动异常。典型应用场景

weixin_35592186的博客 173

LeetCode六月挑战(6.17) Surrounded Regions LeetCode130 解题报告

LeetCode六月挑战(6.17) Surrounded Regions LeetCode130 解题报告 Surrounded Regions Solution Given a 2D board containing ‘X’ and ‘O’ (the letter O), capture all regions surrounded by ‘X’. A region is captured by flipping all 'O’s into 'X’s in that surrounded region.

初七的博客 184

Android 14.0 开机广播接收慢广播延迟问题分析

在14.0的系统rom定制化开发中,在某些时候在接收开机广播的时候发现,过了一分钟才收到开机广播,接下来就需要分析下 开机广播的相关分发机制,来处理下相关问题

安卓兼职framework和app工程师的博客 631

LeetCode130. Surrounded Regions (思路及python解法)

Given a 2D board containing'X'and'O'(the letter O), capture all regions surrounded by'X'. A region is captured by flipping all'O's into'X's in that surrounded region. Example: X X X X X O O...

AIpush的博客 342

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【leetcode】(python) 130. Surrounded Regions周边地区

周边地区DescriptionExample:题意解题思路code 130. Surrounded Regions Medium Description Given a 2D board containing ‘X’ and ‘O’ (the letter O), capture all regions surrounded by ‘X’. A region is captured by flip...

。 376

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Leetcode 130 Surrounded Regions(BFS)

题目连接:Leetcode 130 Surrounded Regions解题思路:所有与边界连接的点,是不会被包围的,所有以边界点为起始点,进行BFS,所有没有遍历过的点赋值‘X’。class Solution { public: void solve(vector&lt;vector&lt;char&gt;&gt;&amp; board) { if (board.size() == ...

不慌不忙、不急不躁 385

[和小菜鸡一起刷题(python)] LeetCode 130 被围绕的区域 (Surrounded regions)

LeetCode 117. 填充同一层的兄弟节点 II(Populating Next Right Pointers in Each Node II)原题思路代码 原题 给定一个二叉树 struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next; } 填充它的每个 next 指针,让这个指针指向...

菜鸡也有鸿鹄志 225

LeetCode130 Surrounded Regions

详细见:leetcode.com/problems/word-ladder Java Solution: github package leetcode; /* Given a 2D board containing 'X' and 'O' (the letter O), capture all regions surrounded by 'X'. A reg

zxwtry的博客 550

【python/Java】【leetcode/130/M】Surrounded Regions

题目 https://leetcode.com/problems/surrounded-regions/ 基本思路 转换一下思路,找出哪些O是没有被X包围的。在面板四周的O肯定是没有被X包围的,与它们相连的O也是没有被包围的,其它的O都是被X包围的。 问题简化为将与四周的O相连的O都找出来,这些点不用变,其它点都变为X。 首先将四周的O压入栈内,依次访问栈内元素,并将它们标记,接着去判断它们四周的...

alicelmx的博客 238

Surrounded Regions

leetcode第130题,迷宫题的近似题,深搜广搜问题,但是据说这道题用深搜会溢出,所以还是使用广搜比较好。 分析问题可以看出,所有与边界搭边的O全部都要被保留,因此这道题应该反过来考虑,那就是不要考虑哪些圆圈被包围,而是哪些圆圈在边界上,然后依次为基础进行广搜,搜索出所有与边界圆圈接壤的圆圈,并把它们做一个标记,此时剩下的就是被包围的圆圈了,再做一次遍历,把包围的圆圈改成X,然后标记过的位置

恒河沙无数 342

python leetcode 130. Surrounded Regions

注意遍历的顺序,从四周开始。与Pacific Atlantic Water Flow类似。 class Solution(object): def solve(self, board): """ :type board: List[List[str]] :rtype: void Do not return anything, modify b...

Neekity的博客 706

LeetCode 130. Surrounded Regions

题目 Given a 2D board containing ‘X’ and ‘O’ (the letter 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

SparkSnail 196

[Leetcode][python]Surrounded Regions/被围绕的区域

题目大意 有一个二维的面板,上面由”X”或者”O”填充。现在要求将被”X”包围的”O”都改成”X”。 解题思路 参考: https://shenjie1993.gitbooks.io/leetcode-python/130%20Surrounded%20Regions.html 直接去找被X包围的O比较麻烦,不如转换一下思路,找出哪些O是没有被X包围的。首先在面板四周的O肯定是没有被...

蛮三刀酱 1244

【LeetCode】#130被围绕的区域(Surrounded Regions)

【LeetCode】#130被围绕的区域(Surrounded Regions) 题目描述 给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。 找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。 示例 X X X X X O O X X X O X X O X X 运行你的函数后,矩阵变为: X X X X X X X X X X X X X O X X 解释...

weixin_43858604的博客 211

[LeetCode] 130. Surrounded Regions

题:https://leetcode.com/problems/surrounded-regions/description/ 题目 Given a 2D board containing ‘X’ and ‘O’ (the letter O), capture all regions surrounded by ‘X’. A region is captured by flipping all '...

u013383813的博客 149

python 朋友圈leetcode_LeetCode | 0130. Surrounded Regions被围绕的区域【Python】

LeetCode 0130. Surrounded Regions被围绕的区域【Medium】【Python】【DFS】ProblemGiven a 2D board containing 'X' and 'O' (the letter O), capture all regions surrounded by 'X'.A region is captured by flipping all 'O...

weixin_39927623的博客 108
上一篇: [leetcode] 475. Heaters @ python
下一篇: [leetcode] 133. Clone Graph @ python
闲庭信步的空间
博客等级 码龄9年 86粉丝 416原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值