封闭岛屿数量 -- 二维矩阵的dfs算法

1254. 统计封闭岛屿的数目

这道题和 岛屿数量 – 二维矩阵的dfs算法 类似,区别在于不算边缘部分的岛屿,那其实很简单,把上⼀题中那些靠边的岛屿排除掉,剩下的就是「封闭岛屿」了。

关于岛屿的相似题目:

  1. 岛屿数量 – 二维矩阵的dfs算法
  2. 封闭岛屿数量 – 二维矩阵的dfs算法
  3. 统计封闭岛屿的数目
  4. 统计子岛屿
  5. 不同岛屿的数量

class closedIsland:"""floodFill 算法1254. 统计封闭岛屿的数目https://leetcode.cn/problems/number-of-closed-islands/"""def solution(self, grid: List[List[str]]) -> int:res = 0m, n = len(grid), len(grid[0])for j in range(n):# 先把靠上边的岛屿淹掉self.dfs_matrix(grid, 0, j)# 先把靠下边的岛屿淹掉self.dfs_matrix(grid, m-1, j)for i in range(m):# 先把靠左边的岛屿淹掉self.dfs_matrix(grid, i, 0)# 先把靠右边的岛屿淹掉self.dfs_matrix(grid, i, n-1)# 遍历grid,就是所有的封闭岛屿for i in range(m):for j in range(n):if grid[i][j] == 0:res += 1self.dfs_matrix(grid, i, j)return resdef dfs_matrix(self, grid, i, j):m, n = len(grid), len(grid[0])# 跳出递归条件if i < 0 or i >= m or j < 0 or j >= n:returnif grid[i][j] == 1:returngrid[i][j] = 1self.dfs_matrix(grid, i - 1, j)  # 上self.dfs_matrix(grid, i + 1, j)  # 下self.dfs_matrix(grid, i, j - 1)  # 左self.dfs_matrix(grid, i, j + 1)  # 右

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Chrome 108版(64-bit 108.0.5359.125)网盘下载

还在用Selenium的朋友们注意了&#xff0c;目前Chrome的最新版是116&#xff0c;而官方的Chromedriver只支持到115版。 可惜Google不提供旧版Chrome的下载方式&#xff0c;需要旧版的很难回去了。如果真的想要旧版的Chrome&#xff0c;只能民间自救。 我在2022年12月备份了C盘…

2023-09-07 monetdb-mvc的实现与并发控制-思考

摘要: monetdb用mvc模块实现了并发控制中对于事务的调度管理, mvc可以看作一次执行的完整的抽象. 并发控制中一个比较需要注意的地方就是调度管理以及锁的使用和管理, 是的, 事务对于资源的使用的串行会使用到锁, 但是申请锁和释放锁却不能由事务本身来进行, 而是调度事务的模…

pyspark 系统找不到指定的路径; \Java\jdk1.8.0_172\bin\java

使用用具PyCharm 2023.2.1 1&#xff1a;pyspark 系统找不到指定的路径&#xff0c; Java not found and JAVA_HOME environment variable is not set. Install Java and set JAVA_HOME to point to the Java installation directory. 解决方法&#xff1a;配置正确环境变量…

VR农学虚拟仿真情景实训教学演示

首先&#xff0c;VR农学虚拟仿真情景实训教学提供了更为真实的实践环境。传统的农学实训往往受制于时间、空间和资源的限制&#xff0c;学生只能通过观察或简单的模拟来学习农业知识和技能。而借助虚拟现实技术&#xff0c;学生可以进入虚拟农场&#xff0c;与各种农作物、工具…

Spring手动构建BeanDefinition的几种方法

Spring手动构建BeanDefinition的几种方法 GenericBeanDefinitionRootBeanDefinitionChildBeanDefinitionBeanDefinitionBuilder GenericBeanDefinition Data public class Student {String name;int age; }public void test() {AnnotationConfigApplicationContext context …

数据库分析工具explain

1.id:查询语句的编号 2.select_type:查询类型&#xff0c;有三种&#xff0c;simple简单查询&#xff0c;primary&#xff0c;subquery等 3.table:查询的表 4.type:查询性能&#xff0c;system > const > eq_ref > ref > range > index > ALL system&…

Redis 高可用及持久化

Redis 高可用 在web服务器中&#xff0c;高可用是指服务器可以正常访问的时间&#xff0c;衡量的标准是在多长时间内可以提供正常服务&#xff08;99.9%、99.99%、99.999%等等&#xff09;。但是在Redis语境中&#xff0c;高可用的含义似乎要宽泛一些&#xff0c;除了保证提供…

一个集成的BurpSuite漏洞探测插件1.1

免责声明 本文发布的工具和脚本&#xff0c;仅用作测试和学习研究&#xff0c;禁止用于商业用途&#xff0c;不能保证其合法性&#xff0c;准确性&#xff0c;完整性和有效性&#xff0c;请根据情况自行判断。如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利&#xff0c…

Linux查看当前文件夹的大小

在Linux中&#xff0c;可以使用du&#xff08;disk usage&#xff09;命令来查看当前文件夹的大小。以下是一些使用du的方法&#xff1a; 查看当前文件夹的大小&#xff1a; 为了查看当前文件夹的总大小&#xff0c;可以在文件夹中运行&#xff1a; du -sh .这里&#xff1a; -…

最近读书了吗?林曦老师与你分享来自暄桐课堂的读书方法

近来&#xff0c;大家有在开心读书吗&#xff1f;对于读书&#xff0c;有一个很生动的说法&#xff1a;“无事常读书&#xff0c;一日是四日。若活七十年&#xff0c;便二百八十。”读书帮助我们超越个体生命经验的限制&#xff0c;此时此地的我们&#xff0c;也可借由书本&…

Linux 服务器运维管理面板1Panel体验

地址 https://github.com/1Panel-dev/1Panel 安装 根据GitHub提示运行即可 curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh安装成功&#xff0c;期间会安装docker 、docker-compose

国产信创服务器如何进行安全可靠的文件传输?

信创&#xff0c;即信息技术应用创新&#xff0c;2018年以来&#xff0c;受“华为、中兴事件”影响&#xff0c;国家将信创产业纳入国家战略&#xff0c;并提出了“28n”发展体系。从产业链角度&#xff0c;信创产业生态体系较为庞大&#xff0c;主要包括基础硬件、基础软件、应…

aarch64 arm64 部署 stable diffusion webui 笔记 【3】

接上篇 aarch64 arm64 部署 stable diffusion webui 笔记 【2】继续安装其他依赖 gfpgan-CSDN博客 source venv/bin/activate export LD_LIBRARY_PATH/usr/local/lib64:/usr/local/lib:/usr/lib64:/usr/lib ./webui.sh 离线安装记录 (venv) [yeqiangceph3 stable-diffusio…

线性代数(六) 线性变换

前言 《线性空间》定义了空间&#xff0c;这章节来研究空间与空间的关联性 函数 函数是一个规则或映射&#xff0c;将一个集合中的每个元素&#xff08;称为自变量&#xff09;映射到另一个集合中的唯一元素&#xff08;称为因变量&#xff09;。 一般函数从 “A” 的每个元…

YMatrix 5.0 与天翼云完成产品兼容性认证

近日&#xff0c;北京四维纵横数据技术有限公司与天翼云宣布完成产品兼容性认证。经过双方严格的测试验证&#xff0c;超融合数据库 YMatrix 5.0 与天翼云兼容性良好&#xff0c;可基于天翼云稳定运行。 数据库系统作为基础软件的核心&#xff0c;自主可控势在必行。在此背景下…

【Sentinel】Sentinel与gateway的限流算法

文章目录 1、Sentinel与Hystrix的区别2、限流算法3、限流算法对比4、Sentinel限流与Gateway限流 1、Sentinel与Hystrix的区别 线程隔离有两种方式实现&#xff1a; 线程池隔离&#xff08;Hystrix默认采用&#xff09;信号量隔离&#xff08;Sentinel默认采用&#xff09; 服…

Java基础学习笔记-5

前言 Java编程语言是一门广泛应用于软件开发领域的高级编程语言。它的强大特性和跨平台性使其成为许多开发者的首选语言。本文将介绍一些Java编程的关键概念&#xff0c;包括函数重载、可变参数、值传递、递归等&#xff0c;这些概念是Java编程的基础&#xff0c;对于理解和掌…

【Seata】03 - Seata AT 模式全局锁相关知识简单整理

文章目录 前言参考目录版本说明分析整理1、全局锁的引入说明2、全局锁相关源码整理2.1、流程简图2.2、事务分支注册前的 SQL 相关操作2.3、注册分支&#xff08;获取全局锁&#xff09; 前言 上一篇文章介绍了 AT 模式的调用流程&#xff0c;但是有个比较重要的概念没有提及到…

Virtual File System了解

虚拟文件系统(以下简称vfs)是置于具体文件系统之上的抽象层&#xff0c;指定内核和具体文件系统的接口。允许client以统一方式访问不同的具体文件系统。比如可以通过VFS透明访问本地硬盘和网络设备就像在同一个设备访问一样。 superblock 每个挂载的文件系统都由vfs superblo…