【DFS】1254. 统计封闭岛屿的数目
1254. 统计封闭岛屿的数目
解题思路
- 封闭岛屿就是上下左右全部被1包围的0 也就是靠边的0不算做封闭岛屿
- 首先将上下左右的边界上的岛屿全部变成海洋
- 然后在对剩下的岛屿进行DFS遍历
class Solution {public int closedIsland(int[][] grid) {// 封闭岛屿就是上下左右全部被1包围的0 也就是靠边的0不算做封闭岛屿// 计算封闭岛屿的数量int m = grid.length;int n = grid[0].length;for(int i = 0; i < n; i++){// 将上下的岛屿 全部变成海洋// 第0行的所有列dfs(grid,0,i);// 最后一行的所有列dfs(grid,m - 1,i);}// 将左右变成海洋for(int j = 0; j < m; j++){dfs(grid,j,0);dfs(grid,j,n - 1);}// 遍历剩下的岛屿int res = 0;for(int i = 0; i < m; i++){for(int j = 0; j < n; j++){if(grid[i][j] == 0){res++;dfs(grid,i,j);}}}return res;}// DFS遍历void dfs(int[][] grid,int i,int j){int m = grid.length;int n = grid[0].length;if(i < 0 || j < 0 || i >= m || j >= n){return;}if(grid[i][j] == 1){return;// 如果已经遍历到海水}// 遍历到岛屿 变成1if(grid[i][j] == 0){grid[i][j] = 1;}dfs(grid,i + 1,j);dfs(grid,i,j + 1);dfs(grid,i - 1,j);dfs(grid,i,j - 1);}
}相关文章:
【DFS】1254. 统计封闭岛屿的数目
1254. 统计封闭岛屿的数目 解题思路 封闭岛屿就是上下左右全部被1包围的0 也就是靠边的0不算做封闭岛屿首先将上下左右的边界上的岛屿全部变成海洋然后在对剩下的岛屿进行DFS遍历 class Solution {public int closedIsland(int[][] grid) {// 封闭岛屿就是上下左右全部被1包…...
C#--sugarClient使用之ColumnName
使用Sugar ORM框架可以很方便地实现表名和实体名的映射,可以按照以下步骤进行操作: 创建一个实体类,定义实体的属性及其他信息。 [SugarTable("user_info")] // 指定实体对应的表名 public class User {public int Id { get; set…...
深度学习-4-二维目标检测-YOLOv5源码测试与训练
本文采用的YOLOv5源码是ultralytics发行版3.1 YOLOv5源码测试与训练 1.Anaconda环境配置 1.1安装Anaconda Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。 官方网址下载安装包&…...
找不到msvcp140.dll的解决方法【msvcp140.dll修复工具下载】
今天,我将为大家分享一个与我们日常工作息息相关的话题——msvcp140.dll重新安装的5种解决方法。在接下来的时间里,我将向大家介绍什么是msvcp140.dll,为什么会丢失,以及它的用途。最后,我将为大家提供5种解决方法,帮助…...
内网隧道代理技术(二十)之 CS使用HTTP代理上线不出网机器
CS使用HTTP代理上线不出网机器 CS工具自带上线不出网机器 如图A区域存在一台中转机器,这台机器可以出网,这种是最常见的情况。我们在渗透测试的过程中经常是拿下一台边缘机器,其有多块网卡,边缘机器可以访问内网机器,内网机器都不出网。这种情况下拿这个边缘机器做中转,…...
安卓 tcp 客户端
安卓 tcp 客户端 Server:8888 是Qt 写的Tcp 服务器 ip 是 192.168.2.103 port是8888 安卓手机运行 kotlin 语法的Tcp Client ,连接,收发数据 效果如下图 Tcpclient package com.example.myapplicationimport android.os.Handler import android.os.Loo…...
flutter plugins插件【三】【Flutter Intl】
3、 Flutter Intl 多语言国际化 在Android Studio中菜单Tools找到flutter intl创建多语言配置。 创建后会在pubspec.yaml出现 flutter_intl:enabled: true 在工程的lib会生成l10n与generated文件夹 l10n包含 intl_en.arb intl_zn.arb 我们在intl_en.arb添加 { home: &quo…...
简单了解ICMP协议
目录 一、什么是ICMP协议? 二、ICMP如何工作? 三、ICMP报文格式 四、ICMP的作用 五、ICMP的典型应用 5.1 Ping程序 5.2 Tracert(Traceroute)路径追踪程序 一、什么是ICMP协议? ICMP因特网控制报文协议是一个差错报告机制,…...
MVCC究竟是什么?
1.MVCC概念 MVCC,全称多版本并发控制 MVCC究竟是什么? 通俗的来说MVCC就是为了在读取数据时不加锁来提高读取效率的一种办法,MVCC解决的是读写时线程安全问题,线程不用去抢占读写锁。MVCC中的读就是快照读,…...
Kafka知识点总结
常见名词 生产者和消费者 同一个消费组下的消费者订阅同一个topic时,只能有一个消费者收到消息 要想让订阅同一个topic的消费者都能收到信息,需将它们放到不同的组中 分区机制 启动方法 生成者和消费者监听客户端...
K8s最基本概念
1.K8s概述和特性 k8s是谷歌在2014年开业的容器化集群管理系统 使用K8s进行容器化应用部署 使用K8s利用应用扩展 k8s目标实施让部署容器化应用更加简洁高效-------集群管理系统 1.1 K8s特性 1) 自动装箱:基于容器对应用运行环境的资源配置 2)自…...
vulnhub渗透测试靶场练习2
靶场介绍 靶场名:easy_cloudantivirus 靶场地址:https://www.vulnhub.com/entry/boredhackerblog-cloud-av,453 环境搭建 依旧使用VM VirtualBox搭建靶场,攻击机使用的是VMware中的kali,需要将VMware虚拟机kali和virtualbox靶机…...
在R中安装TensorFlow、TensorFlow_Probability、numpy(R与Python系列第二篇)
目录 前言: 1-安装tensorflow库 Step1: 下载R包tensorflow Step2:安装TensorFlow库 Step3:导入R中 2-安装tensorflow_probability库 Step1:下载R包:tfprobability Step2:安装TensorFlow Probability …...
十大管理——项目成本管理
目录 1.成本管理概念 2.成本管理的四个过程域 2.1四个过程的整体理解 2.2四个过程的ITO口诀版记忆 2.3过程1——制定项目管理计划 2.4过程2——项目成本估算 2.5过程3——项目成本预算 2.5过程4——项目成本控制 3计算题 1.成本管理概念 项目成本管理就是要确保…...
Java BIO、NIO、AIO学习总结
前言:关于BIO/NIO/AIO的文章已经汗牛充栋,俺最近比较闲试图系统学习一下,希望大侠多多指教! 先来个例子理解一下概念,以银行取款为例: 同步 : 自己亲自出马持银行卡到银行取钱(使用…...
sql各种注入案例
目录 1.报错注入七大常用函数 1)ST_LatFromGeoHash (mysql>5.7.x) 2)ST_LongFromGeoHash (mysql>5.7.x) 3)GTID (MySQL > 5.6.X - 显错<200) 3.1 GTID 3.2 函数详解 3.3 注入过程( payload ) 4)ST_Pointfromgeohash (mysql>5.…...
系统学习Linux-ELK日志收集系统
ELK日志收集系统集群实验 实验环境 角色主机名IP接口httpd192.168.31.50ens33node1192.168.31.51ens33noed2192.168.31.53ens33 环境配置 设置各个主机的ip地址为拓扑中的静态ip,并修改主机名 #httpd [rootlocalhost ~]# hostnamectl set-hostname httpd [root…...
IDEA2023隐藏.idea和.iml文件
IDEA2023隐藏.idea和.iml文件 1. 打开file -> setting,快捷键CtrlAlts2. Editor -> File types3. 点击右侧Ignore files and folders一栏4. 添加需要忽略的文件5. 最重要一步 IDEA新建项目会自动生成一个.idea文件夹和.iml文件,开发中不需要对这两个文件修改&…...
【深入浅出C#】章节 9: C#高级主题:反射和动态编程
反射和动态编程是C#和其他现代编程语言中重要的高级主题,它们具有以下重要性: 灵活性和扩展性:反射允许程序在运行时动态地获取和操作类型信息、成员和对象实例,这使得程序更加灵活和具有扩展性。动态编程则使得程序能够根据运行…...
Gorm简单了解
GORM 指南 | GORM - The fantastic ORM library for Golang, aims to be developer friendly. 04_GORM查询操作_哔哩哔哩_bilibili 前置: db调用操作语句中间加debug()可以显示对应的sql语句 1.Gorm模型定义(理解重点ÿ…...
如何为Linux笔记本安装智能风扇控制系统:NBFC-Linux完全指南
如何为Linux笔记本安装智能风扇控制系统:NBFC-Linux完全指南 【免费下载链接】nbfc-linux NoteBook FanControl ported to Linux 项目地址: https://gitcode.com/gh_mirrors/nb/nbfc-linux 你是否曾经在编译代码时听到笔记本风扇像喷气式飞机一样轰鸣&#x…...
从USB2.0到USB3.0:硬件工程师必须知道的电源管理与布线升级要点(含电平转换案例)
从USB2.0到USB3.0:硬件工程师必须掌握的电源管理与布线升级实战指南 在硬件设计领域,接口技术的迭代往往带来性能的飞跃,但同时也伴随着设计复杂度的显著提升。USB3.0作为当前主流的高速接口标准,其传输速率相比USB2.0提升了近10倍…...
全志Tina Linux嵌入式开发实战:从环境搭建到系统定制全流程指南
1. 项目概述:为什么需要一份系统级的开发指南?在嵌入式Linux开发领域,尤其是基于全志这类主流国产芯片平台的开发,新手和老手都会面临一个共同的困境:官方文档往往散落在各处,有SDK的配置说明、有内核的移植…...
微信QQ防撤回终极指南:RevokeMsgPatcher技术深度解析
微信QQ防撤回终极指南:RevokeMsgPatcher技术深度解析 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitcode.com…...
告别‘端口冲突’:手把手教你用Ganache CLI和UI版搭建本地以太坊测试链(macOS/Windows)
告别‘端口冲突’:手把手教你用Ganache CLI和UI版搭建本地以太坊测试链(macOS/Windows) 在以太坊开发中,本地测试链是不可或缺的工具。Ganache作为Truffle套件中的明星产品,提供了CLI和UI两种版本,但许多开…...
精准识别胡椒成熟度!YOLO-AVCA-CBAMNet 让智慧农业更高效
点击蓝字 关注我们 关注并星标 从此不迷路 计算机视觉研究院 公众号ID|计算机视觉研究院 学习群|扫码在主页获取加入方式 https://pmc.ncbi.nlm.nih.gov/articles/PMC12830288/ 计算机视觉研究院专栏 Column of Computer Vision Institute 本文提出YOLO-…...
别光顾着写EXP:复盘BUUCTF warmup_csaw_2016,聊聊PWN题里的‘信息泄露’与安全编程
从CTF漏洞利用到安全编程:深入解析信息泄露与防御实践 引言 在网络安全竞赛和实际系统安全中,信息泄露往往成为攻击者突破防御的第一块敲门砖。2016年CSAW CTF的warmup题目虽然看似简单,却完美展示了这类漏洞的典型模式——程序不仅存在栈溢出…...
AI从业者的“薪资真相”:不同方向、不同级别AI从业者的薪资水平
在人工智能技术飞速渗透各行业的当下,AI领域已成为软件测试从业者跨界转型的热门方向。相较于测试岗位相对稳定但涨幅平缓的薪资体系,AI行业的薪资结构呈现出极强的分层性与差异性。对于具备技术基础的测试从业者而言,深入了解AI领域的薪资逻…...
用STM32F103 DIY一个JTAG边界扫描测试仪(附完整源码与避坑记录)
用STM32F103 DIY一个JTAG边界扫描测试仪(附完整源码与避坑记录) 在嵌入式开发和硬件调试领域,验证PCB板或芯片的连通性一直是个令人头疼的问题。传统方法要么需要昂贵的专业设备,要么就得面对密密麻麻的测试点束手无策。而JTAG边界…...
5分钟搞定虚拟显示器:ParsecVDD终极指南,解锁4K游戏串流新境界
5分钟搞定虚拟显示器:ParsecVDD终极指南,解锁4K游戏串流新境界 【免费下载链接】parsec-vdd ✨ Perfect virtual display for game streaming 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd 你是否曾经因为物理显示器限制而无法获得完…...
