【LeetCode】130. Surrounded Regions【Medium】【JAVA】

利用python爬取东方财富网股吧评论并进行情感分析(一) 利用python爬取东方财富网股吧评论(一) python-东方财富网贴吧文本数据爬取 分享一下写论文时爬数据用到的代码,有什么问题或者改善的建议的话小伙伴们一起评论区讨论。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示; 增加了 图片拖拽 功能,你可以将本地的图片直 阅读详情

1. 题目

在这里插入图片描述

2. 题意

图形中有两类字符,'X',‘O’ 两种字符,如果 O 被 X 包围住,则需要将 O 转为 X。

3. 思路

我们需要将被包围住的 O 去除,这个其实比较麻烦,因为需要确实四周都是 X,这里采用一个相反的思路,即我们将不被包含的字符 O 进行标记,剩余没有被标记的 O,全部置为 X 即可。

而我们如何确定字符 O 没有被包围?我们通过观察,可以知道,与边有接触的 O,即为不被包围的 O。因此,我们可以考虑遍历所有边上 O,按照 DFS 的思路,将所有与边上的 O 接触的 O进行标记。

4. 解题代码

	public void solve(char[][] board) {
        if (board == null || board.length == 0 || board[0].length == 0) {
            return;
        }
        
        // 用于标记 O 是否被包围,true 代表不被包围,即可以保留
        boolean[][] check = new boolean[board.length][board[0].length];
        
        // 对四条边上的字符进行遍历
        for (int i = 0; i < board[0].length; i++) {
            helper(board, check, 0, i);
            helper(board, check, board.length - 1, i);
        }
        for (int i = 1; i < board.length - 1; i++) {
            helper(board, check, i, 0);
            helper(board, check, i, board[0].length - 1);
        }

        // 遍历所有字符,将所有没有被标记的 O,转为 X
        for (int i = 0; i < board.length; i++) {
            for (int j = 0; j < board[0].length; j++) {
                if (board[i][j] == 'O' && !check[i][j]) {
                    board[i][j] = 'X';
                }
            }
        }
    }

    private void helper(char[][] board, boolean[][] check, int i, int j) {
        if (i < 0 || i >= board.length || j < 0 || j >= board[0].length || board[i][j] == 'X' || check[i][j]) {
            return;
        }
        check[i][j] = true;
        helper(board, check, i + 1, j);
        helper(board, check, i - 1, j);
        helper(board, check, i, j + 1);
        helper(board, check, i, j - 1);
    }

5. 运行结果

在这里插入图片描述

6. 相关链接

本题代码的github链接
其他 Top 100 Liked Questions 题目
其他 LeetCode 题目

杰理JL701N内置flash录音配置教程 本文详细介绍了内置Flash录音功能的配置方法。主要内容包括:1) 基础模式配置(开启音乐/录音模式、Flash录音宏定义);2) 录音参数设置(格式基准值、存储区域定义、容量配置);3) MP3编码特殊处理;4) 下载时的Flash格式化操作;5) 录音开关和播放接口的使用说明。配置过程涉及多个关键文件的修改,并强调存储容量的精确分配。 阅读详情

相关推荐

【Labview】对连续采集数据的一种采样方法

图1如图1,想要对这样一个连续信号进行数据点的采集,我根据网上收集到的方法,在此分享一下最终的结果。可以拓展结合文件的写入,完成对连续信号的采集和输出。 已知: 一个连续信号,如图1. 目标: 设定一定采集点个数、采集点时间间隔、和采集周期次数,得到这条连续信号的数据点,如图2. 图2 方法如下: 主要利用的是队列的方法。 在连续信号生成的时候,不断的写入队列,并且清除队列。 ...

李时珍食疗志的博客 1万+

工业控制系统实时性需求与Windows CE 6.0硬实时实现

实时操作系统(RTOS)在工业控制领域扮演着关键角色,其核心价值在于提供确定性响应能力(Deterministic Response),确保在严格定义的时间窗口内完成计算任务。与传统FPGA或ASIC方案相比,现代RTOS通过创新的内核架构设计(如优先级继承协议和固定优先级抢占式调度)实现微秒级响应,大幅降低开发与维护成本。以Windows Embedded CE 6.0为例,其统一内核架构通过中断嵌套控制、内存静态分配等技术,在Intel Atom平台上实现30微秒以内的中断延迟,满足PLC、机器人控制等

weixin_30326515的博客 473

BioEmu:微软黑科技炸场!生成式AI重构蛋白质模拟:千倍效率碾压传统计算,新药研发周期砍半

BioEmu 是微软推出的生成式深度学习系统,可在单个 GPU 上每小时生成数千种蛋白质结构样本,支持模拟动态变化、预测热力学性质,并显著降低计算成本。

士多啤梨先生の博客 1097

LeetCode【每日一题】_130. 被围绕的区域_java

130. 被围绕的区域问题描述题解深度优先搜索广度优先搜索 问题描述 130.被围绕的区域 给定一个二维的矩阵,包含 ‘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 解释: 被围绕的区间不会存在于边界上,换句话说,任何边界上的 ‘O’ 都不会被填充为 ‘X’。 任何不在边界上

weixin_48598155的博客 447

7段数码管驱动电路设计

7段数码管驱动电路设计

好好学习,天天向上 9750

RK3568 HDMI输出调试:分辨率切换与EDID解析

厂商信息(Vendor ID)显示器型号(Product ID)支持的分辨率列表色彩特性音频支持情况检查项方法HPD 信号EDID 读取当前模式TMDS 时钟PHY 状态。

小灰灰的博客 1480

二维矩阵边界包围JAVA_算法题--在二维矩阵中将所有被字母X包围的非边界O修改为X...

image.png0. 链接1. 题目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...

weixin_30336949的博客 371

Python 爬虫实战:付费 IP 代理使用技巧与爬虫稳定性优化

付费IP代理实战指南:突破反爬与优化稳定性 本文系统讲解付费IP代理在爬虫项目中的高效应用方法。首先对比分析静态代理、动态代理和隧道代理的优缺点及适用场景,推荐高并发项目优先选择隧道代理。然后详细演示了主流代理服务商的集成方法,包括代理池的自动更新和健康检测机制。核心部分重点介绍了爬虫稳定性优化策略,如智能重试、频率控制和请求间隔优化等关键技术。最后通过压力测试验证优化效果,并提供成本控制方案,包括代理复用、错峰爬取等实用技巧。通过本教程,开发者可有效解决高并发爬虫中的IP封禁问题,显著提升系统稳定性和抗风

2503_91057718的博客 2449

【leetcode】130.(Medium)Surrounded Regions

解题思路: 从board最边缘一圈开始向内使用DFS,将可以连通外圈的O设为'#',最后将所有的'#'转化为'O',将其他的'O'转化为'X'。 提交代码: class Solution{ public void solve(char[][] board) { if(board.length==0||board.length==1||board.length==2) return; ...

AXIMI的博客 228

3步!Spring Boot+OCR引擎秒提身份证/营业执照?手把手教你从零实现!

OCR技术革新文档识别效率 本文演示了如何利用Spring Boot+Tesseract OCR+OpenCV构建自动化文档识别系统。相比传统人工录入,OCR技术可实现: 5秒极速提取身份证/营业执照关键信息 精准识别中文文本(准确率90%+) 正则过滤自动匹配结构化数据 技术要点: OpenCV图像预处理(灰度化+二值化) Tesseract多语言OCR识别 正则表达式精准提取证件号码 效率提升达100倍,错误率降低90%,适用于金融、政务等需要批量处理证件的场景。

java专栏 903

企业数字化建设之——品牌零售全渠道运营中台解决方案

OMS审单 --> 订单进入OMS待发货列表区域 --> 备货(线下)-->拣货((线下 )-->质检(线下)--> 包装(线下)--> 快递员取货(线下)(物品 + 客户收货地址清单 )--> 快递员发货(2.2.5 正常退货,客户发起 --> 客服助理审核 --> 评审组 --> ( 货物运输 ) -->质检 ->仓库收货入 正常仓库 -->财务退款,记账。OMS审单 --> 订单进入物流公司系统(如:*丰),--> 快递员发货 --> 物流状态同步OMS --> OMS同步物流状态到销售平台。

java_zhong1990的专栏 612

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

nudt_oys的博客 1145

YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息

本文记录的是基于MobileNet V4的YOLOv11目标检测轻量化改进方法研究。其中MobileViT块旨在以较少的参数对输入张量中的进行建模,结合卷积与 Transformer 的优势,并实现有效的信息编码与融合本文配置了原论文中和三种模型,以满足不同的需求。

Limiiiing的博客 1074

【LeetCode】 130. Surrounded Regions 被围绕的区域(Medium)(JAVA)

【LeetCode】 130. Surrounded Regions 被围绕的区域(Medium)(JAVA) 题目地址: https://leetcode.com/problems/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 i

qq_16927853的博客 158

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LeetCode Top Interview Questions 130. Surrounded Regions (Java版; Medium)

welcome to my blog LeetCode Top Interview Questions 130. Surrounded Regions (Java版; Medium) 题目描述 Given a 2D board containing 'X' and 'O' (the letter O), capture all regions surrounded by 'X'. A regio...

littlehaes的博客 193

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

[Leetcode 130, medium] Surrounded regions

[Leetcode 130, medium] Surrounded regions

算法的实践 467

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

LeetCode-130. Surrounded Regions [C++][Java]

Given anm x nmatrixboardcontaining'X'and'O',capture all regions that are 4-directionallysurrounded by'X'. A region iscapturedby flipping all'O's into'X's in that surrounded region.

贫道绝缘子的博客 721

【LeetCode-面试算法经典-Java实现】【130-Surrounded Regions(环绕区域)】

【130-Surrounded Regions(环绕区域)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  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'

https://github.com/Wang-Jun-Chao 3808

leetcode 130. Surrounded Regions 典型的深度优先遍历DFS + 矩阵遍历

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 X X...

JackZhangNJU的专栏 1044

130 Surrounded Regions [Leetcode]

题目内容: 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

miranda 416

130. Surrounded Regions

class Solution { public void solve(char[][] board) { if(board.length==0) return; if(board[0].length==0) return; int m=board.length; ...

qq_42039996的博客 179

Lintcode 477. Surrounded Regions (Medium) (Python)

Description: Code:

DY的博客 313

LeetCode 130. Surrounded Regions (并查集)

LeetCode 130. Surrounded Regions (并查集)LeetCode 130 Surrounded Regions 并查集 问题描述 解题思路 参考代码 Tags: - Breadth-first Search - Union Find问题描述Given a 2D board containing ‘X’ and ‘O’ (the letter O), captur

金甲虫的博客 998

【LeetCode 1024】视频拼接 Video Stitching

题目: 题意为:用一个chips[][]数组来记录一些视频片段,chips[i][0]记录开始时间,chips[i][1]记录结束时间,给定一个最终要到达的时间点,求判断给定的视频片断,能否拼凑到要求的时间点,如果能到达,问最少需要多少个视频片段可以完成。 举例: 举例部分,例如第三个例子,里面的视频碎片中,选取[0,4]、[4,7]、[6,9]这三个片段,刚好可以到达时间点 9,因此需要的最...

卤小蛋学编程 9427

树、二叉树的前中后层序遍历(递归、非递归Java实现)

文章目录1. 二叉树的前中后序遍历(递归,非递归)以及层序遍历1.1 二叉树前中后遍历的递归解法1.2 二叉树前中后遍历的非递归解法1.2.1 非递归的前序遍历:(LeetCode 144)1.2.2 非递归的中序遍历:(LeetCode 94)1.2.3 非递归的后序遍历:(LeetCode 145)1.3 层序遍历:(LeetCode 102、103、107)2 树的前中后层序遍历2.1 前序...

卤小蛋学编程 5077

LeetCode 有关树深度、路径的题目(JAVA代码实现)

文章目录1. 路径相关的题目112.路径总和113.路径总和 II437.路径总和 III124.二叉树中的最大路径和257.二叉树的所有路径2. 深度相关的题目111.二叉树的最小深度559.N叉树的最大深度834.树中距离之和863.二叉树中所有距离为 K 的结点865.具有所有最深结点的最小子树3. 其他长度相关的题目543.二叉树的直径563.二叉树的坡度662.二叉树最大宽度 1. 路径...

卤小蛋学编程 1075
上一篇: 【LeetCode】Best Time to Buy and Sell Stock Ⅰ、Ⅱ、Ⅲ【Java】
下一篇: 【Spring】源码阅读环境搭建
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值