问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

LeetCode 力扣官方题解 - 1020. 飞地的数量

发布网友 发布时间:2023-05-26 19:26

我来回答

1个回答

热心网友 时间:2024-12-02 08:52

题目描述

给你一个大小为 m x n 的二进制矩阵 grid,其中 0 表示一个海洋单元格、1 表示一个陆地单元格。

一次 移动 是指从一个陆地单元格走到另一个相邻(上、下、左、右)的陆地单元格或跨过 grid 的边界。

返回网格中 无法 在任意次数的移动中离开网格边界的陆地单元格的数量。


示例 1:

示例 2:

提示:


根据飞地的定义,如果从一个陆地单元格出发无法移动到网格边界,则这个陆地单元格是飞地。因此可以将所有陆地单元格分成两类:第一类陆地单元格和网格边界相连,这些陆地单元格不是飞地;第二类陆地单元格不和网格边界相连,这些陆地单元格是飞地。

我们可以从网格边界上的每个陆地单元格开始深度优先搜索,遍历完边界之后,所有和网格边界相连的陆地单元格就都被访问过了。然后遍历整个网格,如果网格中的一个陆地单元格没有被访问过,则该陆地单元格不和网格的边界相连,是飞地。

代码实现时,由于网格边界上的单元格一定不是飞地,因此遍历网格统计飞地的数量时只需要遍历不在网格边界上的单元格。


代码

Java


C#


C++


C

Python3

Golang

JavaScript

复杂度分析

也可以通过广度优先搜索判断每个陆地单元格是否和网格边界相连。

首先从网格边界上的每个陆地单元格开始广度优先搜索,访问所有和网格边界相连的陆地单元格,然后遍历整个网格,统计飞地的数量。

代码

Java

C#

C++

C

Python3

Golang

JavaScript

复杂度分析

除了深度优先搜索和广度优先搜索的方法以外,也可以使用并查集判断每个陆地单元格是否和网格边界相连。

并查集的核心思想是计算网格中的每个陆地单元格所在的连通分量。对于网格边界上的每个陆地单元格,其所在的连通分量中的所有陆地单元格都不是飞地。如果一个陆地单元格所在的连通分量不同于任何一个网格边界上的陆地单元格所在的连通分量,则该陆地单元格是飞地。

并查集的做法是,遍历整个网格,对于网格中的每个陆地单元格,将其与所有相邻的陆地单元格做合并操作。由于需要判断每个陆地单元格所在的连通分量是否和网格边界相连,因此并查集还需要记录每个单元格是否和网格边界相连的信息,在合并操作时更新该信息。

在遍历网格完成并查集的合并操作之后,再次遍历整个网格,通过并查集中的信息判断每个陆地单元格是否和网格边界相连,统计飞地的数量。

代码

Java

C#

C++

C

Python3

Golang

JavaScript

复杂度分析


BY /

本文作者:力扣

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
做过两次人流到现在都三四年了,现在可以再做人流吗?如果做可以不告诉医... 劳荣枝被执行死刑,死刑是如何执行的? 怎樣才能最快最好的去除黑眼圈? G-LOC是指什么? ...Information Service”缩写,其在民航领域的应用及创新变革 "EEBA"缩写代表的紧急逃生呼吸器在航空领域中的应用如何? 全屋整装与全屋定制有什么区别?如果想加盟选哪一种比较好呢? 本人想做开家医疗器械店,请问中国较大的医疗器械批发市场在哪里?_百度... ...我是跑销售的(医疗器械类) 我跟的一家医院里部分管事的人员职务有... 上次我去北园大街的时候看见一家医疗器械正在搞活动,槐荫区这边不知有... 非居民企业所得税源泉扣缴管理暂行办法的第一章 总则 0.45千克一件衣服是多少 6.5千克是多少衣服 求教,冬季的衣服,4.2公斤大概有几件,就是些冬季外套、保暖内衣之类的... 四点五公斤等于多少件衣服 4kg衣服有多少 四千克衣服有几件 相亲必问!5个话题优雅的查户口筛选? 请问在淘宝网的哪个店可以买到原创、好看、质量好又便宜的连衣裙啊... 抗链球菌溶血素 O 抗链球菌溶血素"O"的检测方法 淘宝网上哪个店铺可以买到物美价廉的衣服?推荐下 经常用手挖鼻孔有什么坏处 麦当劳券和天猫券哪种好? 麦当劳有外送卡么 国内有哪些比较大的漫展 cp漫展最早的哪一年的 鑫享未来两全险和平安颐享年年年金险对比,更推荐买哪个? 相比鑫享未来两全险,平安颐享年年年金险的亮点有什么? 请帮我翻译一下下面的duihua 力扣数据结构勋章怎么获得 企业车间主任工作有啥漏洞 豫nsx853车牌好吗 微信表情包有什么含义? 酒红色的裙子配什么颜色的打底衫好? 社保和医保能分开两地缴纳吗? dnf科技币是什么 山东社保和医保不在一个单位缴纳可以吗 单位补充医疗和社保可以不是一个公司吗 止水针和止水阀的区别 带止水阀和不带止水阀的区别 止水阀关不住水的原因止水阀关不住水方法 电脑型号 华硕 K30BF_M32BF_A_F_K31BF 操作系统 Microsoft W_百度知... 华硕K30BF_M32BF_A_F_K31BF(AMD K15)支持960显卡吗 这是我电脑配置,大佬推荐一下换4gx2内存条好还是换8g好,要是换的话换... 求大神帮忙看一下为什么换了显卡之后更卡了 现在应该怎么办 请问玩守望先锋我的电脑配置需要更换什么 中低特效流畅即可 希腊毛绒玩具字母人阿拉伯语新越南语哈萨克语 pahs是什么测试项目 课桌椅子黑板扇子不同类型