leetcode 130被围绕的区域

思路

一个区域不能被围绕是这个区域有部分在边界

可以循环边界,找边界的区域(利用深搜),这些都不能被围绕,其余的,能被围绕,应该从"O"变为”X“

代码

static boolean[][] hasGo;//记录是否走过
    static int[][] to = {{0,1},{1,0},{-1,0},{0,-1}};
    public void solve(char[][] board) {
        hasGo = new boolean[board.length][board[0].length];
        for (int i = 0;i<board.length;i++){
            for (int j = 0; j<board[0].length;j++){
                //边界
                if (i==0||j==0|| i == board.length-1||j == board[0].length-1){//找边界
                   if (hasGo[i][j] == false && board[i][j] == 'O'){//没被走过且是可以走的
                       dfs(i,j,board);
                   }
                }
            }
        }
        for (int i = 0; i < board.length; i++) {
            for (int j = 0; j < board[0].length; j++) {
                if (board[i][j] == 'O' && hasGo[i][j] == false){//是0,且从边界走不到
                    board[i][j] = 'X';
                }
            }
        }
    }

    private void dfs(int i, int j, char[][] board) {
        hasGo[i][j] = true;// 这个点走过了
        for (int k = 0;k<4;k++){
            int ii = i + to[k][0];
            int jj = j + to[k][1];
            if (ii>=0 && ii<board.length&&jj>=0&&jj<board[0].length){
                if (hasGo[ii][jj] == false&& board[ii][jj] == '0'){
                    dfs(ii,jj,board);
                }
            }
        }
    }

注意

字符分别是大写的X和大写的O,我把O当成了0
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/714322.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

sigmoid函数

σ ( x ) 1 1 e − x \sigma(x)\frac1{1e^{-x}} σ(x)1e−x1​ sigmoid函数好处 1. σ ( x ) \sigma(x) σ(x)的域值是[0,1] &#xff0c;在(-∞, ∞)单调递增&#xff0c;很符合概率分布函数的特点 2.以 σ ( x ) \sigma(x) σ(x)为分布函数的概率密度函数在远离零点的位置…

微服务架构思考

时间&#xff1a;2024年06月16日 作者&#xff1a;小蒋聊技术 邮箱&#xff1a;wei_wei10163.com 微信&#xff1a;wei_wei10 音频地址&#xff1a; https://xima.tv/1_HvQZkj?_sonic0https://xima.tv/1_HvQZkj?_sonic0 大家好&#xff0c;欢迎来到小蒋聊技术&#xff0c…

10.Docker Compose容器编排

文章目录 Compose简介安装和卸载步骤核心概念compose文件两要素 使用步骤Compose常用命令微服务测试本地编码打包编写Dockerfile文件构建镜像 不使用Compose调试使用Compose调试WordPress测试验证增量更新 Compose简介 ​ docker建议我们每一个容器中只运行一个服务,因为docke…

CloudFlare 里如何设置参数传递的 301 重定向

自从接到【哈哈,笑死我了都,黔驴技穷了都!】一文里提到的代维客户订单,这两天明月就一直在加班加点的重新部署着客户的四个服务器,因为有三个都是 WordPress+WooCommerce 式的电商平台,很是有些费时费力,好在现在基本都搞定了,剩下的就是些细节方面的优化、调整了。期间…

2024 年最新 Python 使用 gewe 框架搭建微信机器人实现语音智能回复(详细教程)

Gewe 个微框架 GeWe&#xff08;个微框架&#xff09;是一个创新性的软件开发框架&#xff0c;专注于IPAD协议&#xff0c;为个人微信号以及企业信息安全提供了强大的功能和保障。GeWe的设计旨在简化开发过程&#xff0c;使开发者能够高效、灵活地构建和定制通信协议&#xff…

uniapp实现路由拦截——实战案例(二)

uniapp如何实现登录路由拦截&#xff1f; 今天再次介绍一下 uni-simple-router 插件&#xff0c;记得最初使用时&#xff0c;是在三年以前了&#xff0c;这里简单介绍通过自动读取 pages.json 作为路由表的方式&#xff0c;欢迎指教~ 文章目录 uniapp如何实现登录路由拦截&…

哪些数据管理知识领域需要做到数据全生命周期管理

一、数据生命周期 数据管理、数据治理、数据安全、元数据管理、数据治理等知识领域,都需要按照数据的生命周期开展管理工作。数据生命周期包括计划、设计/启用、创建/获取、存储/维护、使用、增强和处置。详见下图。 1.数据治理生命周期 1)规划:将数据要求与业务战略连接起…

关于小程序测试账号如何移除

关于小程序测试账号如何移除 有很多小伙伴一开始做开发,一开始用来做测试号,登录微信公众号的时候会提示配置项, 那么如何移除掉呢 https://mp.weixin.qq.com/ 关注「公众平台安全助手」公众号 -> 绑定查询 -> 微信号绑定账号 -> 小程序 -> 点击小程序 -> 解除…

ByteTrack

1. 论文中伪代码表示的流程图 2. 简要版 此图源自&#xff1a; ByteTrack多目标跟踪原理&#xff0c;白老师人工智能学堂 3. 详细版 根据ByteTrack-CPP-ncnn代码的数据流画的较为详细的流程图&#xff1a; 4. ByteTrack-CPP-ncnn的UML类图 Reference ByteTrack多目标跟踪原…

Qt状态机框架

概述 状态机框架提供了用于创建和执行状态图的类。这些概念和符号基于Harel的Statecharts:复杂系统的可视化形式(http://www.wisdom.weizmann.ac.il/~dharel/SCANNED.PAPERS/Statecharts.pdf)&#xff0c;也是UML状态图的基础。状态机执行的语义基于状态图XML (SCXML)(http://…

消息队列-分布式消息队列技术选型

Kafka Kafka 是 LinkedIn 开源的一个分布式流式处理平台&#xff0c;已经成为 Apache 顶级项目&#xff0c;早期被用来用于处理海量的日志&#xff0c;后面才慢慢发展成了一款功能全面的高性能消息队列。 流式处理平台具有三个关键功能&#xff1a; 消息队列&#xff1a;发布和…

SQLServer使用 PIVOT 和 UNPIVOT行列转换

在SQL Server中&#xff0c;PIVOT是一个用于将行数据转换为列数据的操作。它特别适用于将多个行中的值转换为多个列的情况&#xff0c;并在此过程中执行聚合操作。以下是关于SQL Server中PIVOT操作的详细解释和示例&#xff1a; 1、本文内容 概述语法备注关键点简单 PIVOT 示…

Linux命令2

文章目录 移动文件或目录mv格式 查找命令/文件存放位目录置which格式 查找文件或目录find格式查找类型多个查找条件逻辑运算符 移动文件或目录 mv 将文件或者目录移动到指定的位置 如果目标的位置和源位置相同&#xff0c;相当于改名操作 跨目录移动相当于window的剪切 格式…

MacOS之解决:开盖启动问题(七十四)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

2024.6.16周报

目录 摘要 ABSTRACT 一、文献阅读 一、题目 二、摘要 三、创新点 四、模型架构 五、文章解读 1、Introduction 2、实验 3、结论 二、代码复现 1、模型代码 2、实验结果 三、总结 摘要 本周我阅读了一篇题目为《Contaminant Transport Modeling and Source Att…

工厂方法模式实战之某商场一次促销活动

目录 1.5.1、前言1.5.2、实战场景简介1.5.3、开发环境1.5.4、用传统的if-else语句实现1.5.4.1、工程结构1.5.4.2、if-else需求实现1.5.4.3、测试验证 1.5.5、工厂模式优化代码1.5.5.1、工程结构1.5.5.2、代码实现1.5.5.2.1、定义各种商品发放接口及接口实现1.5.5.2.2、定义工厂…

项目经理,请勇敢Say No~

为什么要say no&#xff1f; 培养say no的勇气 优雅的say no&#xff01; say no 三部曲&#xff0c;项目经理&#xff0c;你准备好了吗&#xff1f; 为什么要say no&#xff1f; 保护项目完整性的屏障 项目管理的核心在于平衡时间、成本与质量三大要素&#xff0c;任何一项的…

STL——set、map、multiset、multimap的介绍及使用

文章目录 关联式容器键值对树形结构与哈希结构setset的介绍set的使用set的模板参数列表set的构造set的使用set的迭代器使用演示 multisetmultiset演示 mapmap的定义方式map的插入map的查找map的[ ]运算符重载map的迭代器遍历multimapmultimap的介绍multimap的使用 在OJ中的使用…

全球“抱团”美股,美股“抱团”AI

内容提要 过去一个月内&#xff0c;全球约有300亿美元新资金流入股票基金&#xff0c;其中高达94%投向了美国资产&#xff1b;一季度&#xff0c;海外投资者购入了1870亿美元美国公司债券&#xff0c;同比增长61%。 文章正文 尽管美国面临债务问题和大选带来的政治分歧&#…

索引-定义、创建(CREATE INDEX)、删除(DROP INDEX)

一、概述 1、索引是SQL语言定义的一种数据对象&#xff0c;是大多数DBMS为数据库中基本表创建的一种辅助存取结构&#xff0c;用于响应特定查询条件进行查询时的查询速度&#xff0c;DBMS根据查询条件从数据库文件中&#xff0c;选择出一条或者多条数据记录以供检索&#xff0…