岛屿的数量(BFS)
给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中)。
岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。
此外,你可以假设该网格的四条边均被水包围。
示例 1:
输入:grid = [["1","1","1","1","0"],["1","1","0","1","0"],["1","1","0","0","0"],["0","0","0","0","0"] ] 输出:1
示例 2:
输入:grid = [["1","1","0","0","0"],["1","1","0","0","0"],["0","0","1","0","0"],["0","0","0","1","1"] ] 输出:3
提示:
m == grid.lengthn == grid[i].length1 <= m, n <= 300grid[i][j]的值为'0'或'1'
class Solution {
public:int numIslands(vector<vector<char>>& grid) {if (grid.empty()) return 0;int rows = grid.size();int cols = grid[0].size();int islands = 0;int dx[] = {0, 0, -1, 1};int dy[] = {-1, 1, 0, 0};queue<pair<int,int>> q;for(int i = 0; i < rows; i++) {for(int j = 0; j < cols; j++) { if(grid[i][j] == '1') { // 发现陆地islands++; // 岛屿数量加1q.push({i, j}); // 将起点加入队列grid[i][j] = '0'; // 标记为已访问while(!q.empty()) {auto [x, y] = q.front(); // 获取队首坐标q.pop();for(int k = 0; k < 4; k++) {int nx = x + dx[k]; int ny = y + dy[k]; if(nx >= 0 && nx < rows && ny >= 0 && ny < cols && grid[nx][ny] == '1') {q.push({nx, ny}); // 加入队列grid[nx][ny] = '0'; // 标记为已访问}}}}}}return islands;}
};
当遇到 '1'(未访问的陆地)时,说明发现了一个新的岛屿。用 BFS 将所有相连的陆地标记为'0'。
当遍历完后,记录了总的岛屿数量。
相关文章:
岛屿的数量(BFS)
给你一个由 1(陆地)和 0(水)组成的的二维网格,请你计算网格中)。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包…...
线上JVM OOM问题,如何排查和解决?
今天咱们来聊聊让无数 Java 开发者头疼的 JVM OOM(Out Of Memory,内存溢出)问题。在面试中,OOM 问题也是面试官的“心头好”,因为它能直接考察你对 JVM 的理解,以及你在实际问题面前的排查和解决能力。 一…...
Linux的缓存I/O和无缓存IO
一、I/O缓存的背景 I/O缓存是指在内存里开辟一块区域,存放用来接收用户输入和用于计算机输出的数据,以减小系统开销和提高外设效率。linux对IO文件的操作分为不带缓存的IO操作和带缓存的IO操作(标准IO操作)。为什么存在C标准I/O库…...
【弹性计算】弹性裸金属服务器和神龙虚拟化(三):弹性裸金属技术
弹性裸金属服务器和神龙虚拟化(三):弹性裸金属技术 1.弹性裸金属技术背景1.1 传统 KVM 虚拟化系统导致 CPU 计算特性损失1.2 传统 KVM 虚拟化系统导致资源争抢不可避免1.3 传统 KVM 虚拟化系统导致 I/O 性能瓶颈 2.弹性裸金属技术实现2.1 VPC…...
【MySQL】(2) 库的操作
SQL 关键字,大小写不敏感。 一、查询数据库 show databases; 注意加分号,才算一句结束。 二、创建数据库 {} 表示必选项,[] 表示可选项,| 表示任选其一。 示例:建议加上 if not exists 选项。 三、字符集编码和排序…...
Hyper-V -docker-vmware 三者的关系
1. Docker 正常运行,需要启动Hyper-V ,打开 hypervisorlaunchtype 2.VMware 正常时,需要关闭Hyper-V ,关闭 hypervisorlaunchtype 2.1资源管理器->CPU 里要开启虚拟化 2.2 服务-停掉HV服务 2.3 控制面板 不勾选 2.4 …...
IP-----双重发布
目录 6.双重发布 1.重发布的作用 2.部署条件 1.必须存在ASBR 2.种子度量值 3.重发布的规则 4.重发布的数量 5.重发布的场景 1.场景和规则 2.直连和静态 3.动态RIP 4.动态OSPF 5.更改开销值 6.重发布的问题1 7.重发布的问题2 1.流量 2.前缀列表 3.偏移列表 4…...
【新立电子】探索AI眼镜背后的黑科技,FPC如何赋能实时翻译与语音识别,点击了解未来沟通的新方式!
在全球化的今天,语言障碍成为人们沟通与交流的一大难题。AI眼镜作为一种新兴的智能设备,正在通过实时翻译与语音识别功能,打破语言壁垒,为人们提供无缝沟通的解决方案。FPC在AI眼镜中的应用,为实时翻译与语音识别功能的…...
LeetCode 热题 100_寻找两个正序数组的中位数(68_4_困难_C++)(二分查找)(先合并再挑选中位数;划分数组(二分查找))
LeetCode 热题 100_寻找两个正序数组的中位数(68_4) 题目描述:输入输出样例:题解:解题思路:思路一(先合并再挑选中位数):思路二(划分数组(二分查找…...
Java多线程与高并发专题——深入ReentrantReadWriteLock
深入ReentrantReadWriteLock 读写锁出现原因 synchronized和ReentrantLock都是互斥锁。如果说有一个操作是读多写少的,还要保证线程安全的话。如果采用上述的两种互斥锁,效率方面很定是很低的。在这种情况下,咱们就可以使用ReentrantReadWr…...
【Python 语法】算法合集
查找二分查找代码大 O 表示法 广度优先搜索代码 狄克斯特拉算法 递归递归调用栈 分而治之(divide and conquer,D&C)贪心教室调度问题背包问题集合覆盖问题 动态规划背包问题旅游行程最优化 遇到问题时, 如果不确定该如何 高效…...
[STM32]从零开始的STM32 BSRR、BRR、ODR寄存器讲解
一、前言 学习STM32一阵子以后,相信大家对STM32 GPIO的控制也有一定的了解了。之前在STM32 LED的教程中也教了大家如何使用寄存器以及库函数控制STM32的引脚从而点亮一个LED,之前的寄存器只是作为一个引入,并没有深层次的讲解,在教…...
C++ ++++++++++
初始C 注释 变量 常量 关键字 标识符命名规则 数据类型 C规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存 整型 sizeof关键字 浮点型(实型) 有效位数保留七位,带小数点。 这个是保…...
C# 牵手DeepSeek:打造本地AI超能力
一、引言 在人工智能飞速发展的当下,大语言模型如 DeepSeek 正掀起新一轮的技术变革浪潮,为自然语言处理领域带来了诸多创新应用。随着数据隐私和安全意识的提升,以及对模型部署灵活性的追求,本地部署 DeepSeek 成为众多开发者和…...
phpstudy安装教程dvwa靶场搭建教程
GitHub - digininja/DVWA: Damn Vulnerable Web Application (DVWA) Dvwa下载地址 Windows版phpstudy下载 - 小皮面板(phpstudy) 小皮下载地址 1选择windows 版本,点击立即下载 下载完成,进行解压,注意不要有中文路径 点击.exe文件进行安装…...
最新版本SpringAI接入DeepSeek大模型,并集成Mybatis
当时集成这个环境依赖冲突,搞了好久,分享一下依赖配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instan…...
FastAPI 学习笔记
简介: FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 并基于标准的 Python 类型提示。 关键特性: 快速:可与 NodeJS 和 Go 并肩的极高性能(归功于 Starlette 和 Pydantic&…...
Elasticsearch:过滤 HNSW 搜索,快速模式
作者:来自 Elastic Benjamin Trent 通过我们的 ACORN-1 算法实现,探索我们对 Apache Lucene 中的 HNSW 向量搜索所做的改进。 多年来,Apache Lucene 和 Elasticsearch 一直支持使用 kNN 查询的过滤搜索,允许用户检索符合指定元数据…...
华为hcia——Datacom实验指南——STP工作基本原理及STP/RSTP基本功能配置
什么时候需要用到STP 在二层交换网络中,为了避免环路产生。 什么是STP STP生成树协议,是用来在冗余链路上消除二层环路。在众多交换机中,需要设置出一个根桥,其余的交换机称为非根桥,根桥是整个交换网络的核心&…...
Vue核心知识:动态路由实现完整方案
在Vue中实现动态路由,并结合后端接口和数据库表设计,是一个复杂的项目,需要多个技术栈和步骤的配合。以下将详细描述整个实现过程,包括数据库设计、后端接口设计、前端路由配置以及如何实现动态路由的功能。 目录 一、需求分析二…...
GD32F303外部中断实战:从按键消抖到中断优先级配置,一个例程全搞定
GD32F303外部中断实战:从按键消抖到中断优先级配置 第一次接触嵌入式开发时,最让我困惑的就是中断系统。记得当时用按键控制LED,明明代码逻辑没问题,LED却总是莫名其妙地闪烁。后来才发现是按键抖动导致多次触发中断。今天我们就以…...
Cursor Free VIP终极指南:5步轻松实现AI编程助手永久免费使用
Cursor Free VIP终极指南:5步轻松实现AI编程助手永久免费使用 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached y…...
3步搞定日语Galgame翻译的终极方案:TsubakiTranslator完全指南
3步搞定日语Galgame翻译的终极方案:TsubakiTranslator完全指南 【免费下载链接】TsubakiTranslator 一款Galgame文本翻译工具,支持Textractor/剪切板/OCR翻译 项目地址: https://gitcode.com/gh_mirrors/ts/TsubakiTranslator 还在为看不懂日语Ga…...
免费商用音乐下载网站TOP5 | 基于版权合规与素材复用效率的横评
引言 2026年,国内内容营销市场持续扩张,企业短视频、直播切片、线下活动音视频等场景对背景音乐的需求量同比增长37%(根据《2026中国数字内容版权白皮书》)。然而,创作者在实际选曲过程中普遍存在三类矛盾:…...
GPT-4稀疏激活真相:2%参数背后的MoE工程代价
1. 项目概述:参数规模与稀疏激活的真相拆解“GPT-4有1.8万亿参数,但每生成一个token只用其中2%”——这句话过去两年在技术社区反复刷屏,被当作大模型“智能涌现”的佐证、算力效率革命的宣言,甚至成了不少投资人判断AI基础设施投…...
如何高效管理动物森友会存档:NHSE完整使用指南
如何高效管理动物森友会存档:NHSE完整使用指南 【免费下载链接】NHSE Animal Crossing: New Horizons save editor 项目地址: https://gitcode.com/gh_mirrors/nh/NHSE NHSE(Animal Crossing: New Horizons Save Editor)是一款专为《动…...
终极指南:3步解锁网易云音乐NCM格式的完整Windows解决方案
终极指南:3步解锁网易云音乐NCM格式的完整Windows解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经下载了网易云音乐的歌曲&…...
AI Agent智能体技术:从问答到执行的范式革命
标签:AI Agent、大模型、智能体、LangChain、ReAct、Function Calling 📖 前言 2026年5月20日,谷歌I/O 2026大会在美国加州山景城开幕。谷歌CEO桑达尔皮查伊(Sundar Pichai)在大会上宣布:“我们已正式进入’智能体Gemini时代’。”就在同一天,百度Create 2026大会上,…...
RAG + Agent = 王炸组合:知识增强型Agent详解
完整版合集、面试题库、项目实战,全网同名【图解 AI 系列】前几篇文章我们讲了Agent的核心能力:调用工具、记忆系统、规划能力、多Agent协作。但有一个问题一直没解决:Agent的知识从哪来? 大模型的知识是训练时学到的,…...
武汉专升本民办 vs 公办机构怎么选
每年到了专科大三的春天,武汉的专升本备考群里总会出现类似的问题:“公办机构是不是比民办靠谱?”“民办会不会拿钱不办事?”“集训营到底该冲公办还是选民办?”说实话,这个问题没有标准答案,因…...
