【代码随想录Day50】图论Part02
岛屿数量 深搜
题目链接/文章讲解:代码随想录
class Solution {// 计算网格中岛屿的数量public int numIslands(char[][] grid) {int sum = 0; // 初始化岛屿数量为0// 遍历整个网格for (int i = 0; i < grid.length; i++) {for (int j = 0; j < grid[0].length; j++) {// 如果当前单元格是陆地('1'),则表示发现了一个新的岛屿if (grid[i][j] == '1') {sum++; // 增加岛屿计数dfs(grid, i, j); // 使用深度优先搜索(DFS)标记整个岛屿}}}return sum; // 返回岛屿的总数}// 深度优先搜索,用于标记连接的陆地public void dfs(char[][] grid, int i, int j) {// 如果索引越界或当前单元格是水('0'),则返回if (i < 0 || i > grid.length - 1 || j < 0 || j > grid[0].length - 1 || grid[i][j] == '0') {return;}// 将当前单元格标记为水('0'),表示已经访问过grid[i][j] = '0';// 递归地检查四个方向(上、下、左、右)的相邻单元格dfs(grid, i - 1, j); // 上dfs(grid, i + 1, j); // 下dfs(grid, i, j - 1); // 左dfs(grid, i, j + 1); // 右}
}
岛屿数量 广搜
题目链接/文章讲解:代码随想录
class Solution {public int numIslands(char[][] grid) {// 创建一个队列用于BFSQueue<int[]> queue = new LinkedList<>();// 初始化岛屿数量int sum = 0;// 遍历整个网格for (int i = 0; i < grid.length; i++) {for (int j = 0; j < grid[0].length; j++) {// 如果当前位置是陆地('1')if (grid[i][j] == '1') {// 发现一个新的岛屿,岛屿数量加一sum++;// 将当前位置加入队列,并标记为已访问('0')queue.add(new int[]{i, j});grid[i][j] = '0';// 开始BFSwhile (!queue.isEmpty()) {// 从队列中取出一个位置int[] cur = queue.poll();int x = cur[0];int y = cur[1];// 检查上方的位置if (x - 1 >= 0 && grid[x - 1][y] == '1') {queue.add(new int[]{x - 1, y});grid[x - 1][y] = '0'; // 标记为已访问}// 检查下方的位置if (x + 1 < grid.length && grid[x + 1][y] == '1') {queue.add(new int[]{x + 1, y});grid[x + 1][y] = '0'; // 标记为已访问}// 检查左边的位置if (y - 1 >= 0 && grid[x][y - 1] == '1') {queue.add(new int[]{x, y - 1});grid[x][y - 1] = '0'; // 标记为已访问}// 检查右边的位置if (y + 1 < grid[0].length && grid[x][y + 1] == '1') {queue.add(new int[]{x, y + 1});grid[x][y + 1] = '0'; // 标记为已访问}}}}}// 返回岛屿的总数量return sum;}
}
岛屿的最大面积
题目链接/文章讲解:代码随想录
class Solution {// 主方法,用于计算二维网格中最大的岛屿面积public int maxAreaOfIsland(int[][] grid) {int max_area = 0; // 初始化最大岛屿面积为0// 遍历整个二维网格for (int i = 0; i < grid.length; i++) {for (int j = 0; j < grid[0].length; j++) {// 如果当前格子是岛屿(值为1)if (grid[i][j] == 1) {// 使用深度优先搜索计算当前岛屿的面积int area = dfs(grid, i, j);// 更新最大岛屿面积max_area = Math.max(max_area, area);}}}return max_area; // 返回最大岛屿面积}// 深度优先搜索方法,用于计算岛屿的面积public int dfs(int[][] grid, int i, int j) {// 检查当前格子是否越界或是否是水域(值为0)if (i < 0 || i >= grid.length || j < 0 || j >= grid[0].length || grid[i][j] == 0) {return 0; // 如果是越界或水域,返回面积为0}grid[i][j] = 0; // 将当前格子标记为已访问(值设为0)// 递归计算当前格子上、下、左、右四个方向的岛屿面积int up = dfs(grid, i - 1, j); // 上int down = dfs(grid, i + 1, j); // 下int left = dfs(grid, i, j - 1); // 左int right = dfs(grid, i, j + 1); // 右// 返回当前格子的面积(1)加上四个方向的面积之和return 1 + up + down + left + right;}
}
相关文章:
【代码随想录Day50】图论Part02
岛屿数量 深搜 题目链接/文章讲解:代码随想录 class Solution {// 计算网格中岛屿的数量public int numIslands(char[][] grid) {int sum 0; // 初始化岛屿数量为0// 遍历整个网格for (int i 0; i < grid.length; i) {for (int j 0; j < grid[0].length…...
帝国CMS 内容页调用上一篇下一篇的方法(精华汇总)
帝国cms默认的内容页的上一页&下一页的调用代码是: 上一篇:[!--info.pre--] 下一篇:[!--info.next--] 但是实话实说,如果做个很普通的模版那足够用了,但是如果想个性化一点的话,比如加背景ÿ…...
(7)c++复合数据类型之数组
数组 数组就是可以存储一组相同类型的值,比如int a[10];就是一个存储10个int类型的数组。 数组初始化 数组初始化可以单个初始化,也是使用列表初始化,列表初始化可以全部,或者部分,如下案例: #include &…...
2.1 > Shell 是什么、如何更熟练的使用 Bash Shell
Shell 基础知识 Shell是计算机操作系统中的一个命令行解释器,由C语言编写,用于用户与操作系统之间进行交互。用户可以通过Shell输入命令,操作系统接收到这些命令后执行相应的操作。Shell一般还提供了编程语言的基本功能,允许用户…...
YOLO V3 网络构架解析
YOLO V3(You Only Look Once version 3)是由Joseph Redmon等人于2018年提出的一种基于深度学习的目标检测算法。它在速度和精度上相较于之前的版本有了显著提升,成为计算机视觉领域的一个重要里程碑。本文将详细解析YOLO V3的网络架构&#x…...
【zlm】 webrtc源码讲解(二)
目录 webrtc播放 MultiMediaSourceMuxer里的_ring webrtc播放 > MediaServer.exe!mediakit::WebRtcPlayer::onStartWebRTC() 行 60 CMediaServer.exe!mediakit::WebRtcTransport::OnDtlsTransportConnected(const RTC::DtlsTransport * dtlsTransport, RTC::SrtpSession::…...
5G RedCap工业路由器赋能电力物联网应用
随着5G轻量化技术应用的推进,5G RedCap旨在提供低功耗、低成本、广覆盖等功能特点赋能电力智能化升级。特别适用于工业物联网、低空经济、车联网、消费电子和轻量级5G的需求。 5G RedCap工业路由器的特点 低功耗:5G RedCap工业路由器通过节能技术&#…...
029.浏览器自动化-抓取#document下的内容
一、iframe下的#document是什么 #document 是一个特殊的 HTML 元素,表示 <iframe> 元素内部的文档对象。当你在 HTML 页面中嵌入一个 <iframe> 元素时,浏览器会创建一个新的文档对象来表示 <iframe> 内部的内容。这 个文档对象就是 #…...
2024前端html5,css3面试题总汇
1.XML,HTML,XHTML区别⭐ XML:XML是一个可扩展标记语言,主要是用来存储,传输数据的,并非显示数据,可以用来标记数据,定义数据类型,允许用户对自己的标记语言进行定义&…...
css实现外层不换行,内层换行
css实现上图效果,内容A和B整体不换行,B内容中换行 <div className"description"> <div className"label">{formatMessage({id: description})}</Col> <divclassName"value"> &l…...
word取消自动单词首字母大写
情况说明:在word输入单词后首字母会自动变成大写 (1)点击菜单栏文件 (2)点击“更多”——>“选项” (3)点击“校对”——>“自动更正选项” (4)取消“句首字母大写…...
flex常用固定搭配
flex常用固定搭配 flex简写:flex-grow(项目放大),flex-shrink (项目缩小),flex-basis(项目本身) flex: 1; 全写:flex: 1 1 0%;内容自动放大或缩小占满剩余…...
Kafka、Kafka Streams、Drools、Redis 和分布式数据库的风控系统程序
由于实时风控系统难度较大,集成框架设计各个单位均有特点,快速建立一个通用性较强,学习、实施和使用成本较低的框架尤其重要。 提供一个简化的 Java 程序示例,演示如何将 Kafka 消息中间件、Kafka Streams 计算引擎、Drools 规则…...
C++在实际项目中的应用第一课:游戏开发中的C++
第五章:C在实际项目中的应用 第一课:游戏开发中的C 1. 游戏引擎架构的详细分析 游戏引擎是现代游戏开发的核心,负责处理图形渲染、物理计算、音频管理和用户输入等多项功能。以下是游戏引擎架构的各个主要组成部分及其详细分析。 1.1 渲染…...
一键下载海外youtbe视频 解锁版 支持多分辨率
下载:https://pan.quark.cn/s/387e1110ebe5 【应用名称】:Snaptube 【应用版本】:7.28.0 【应用大小】:26.6M 【测试机型】:小米10S 【适用平台】:Andriod 【版本说明】:解锁版...
Scala内部类的运用
内部类:定义在类里面的类(内部类可以访问私有成员用它来操作类的私有成员,封闭性更好) class Student{var age18def say():Unit{}class Book{val bookName: Any "Scala程序设计"}}object Test19 {def main(args: Arra…...
【在Linux世界中追寻伟大的One Piece】Socket编程UDP
目录 1 -> UDP网络编程 1.1 -> V1版本 -echo server 1.2 -> V2版本 -DictServer 1.3 -> V2版本 -DictServer(封装版) 1 -> UDP网络编程 1.1 -> V1版本 -echo server 简单的回显服务器和客户端代码。 备注:代码中会用到地址转换函数。 noc…...
机器学习在聚合物及其复合材料中的应用与实践
在当前的工业和科研领域,聚合物及其复合材料因其卓越的物理和化学性能而受到广泛关注。这些材料在航空航天、汽车制造、能源开发和生物医学等多个行业中发挥着至关重要的作用。随着材料科学的发展,传统的实验和理论分析方法已逐渐无法满足新材料研发的需…...
用大模型或者预训练模型对图片进行OCR
背景:使用大模型或者预训练模型(比如来自huggingface上的模型)对图片进行OCR,并将识别结果标记在图片原文的下方。 愿我们终有重逢之时,而你还记得我们曾经讨论的话题。 QQ group 868373192 QQ second group 277356808 要使用预训练模型对图片进行OCR(光学字符识别)…...
如何使用的是github提供的Azure OpenAI服务
使用的是github提供的Azure OpenAI的服务gpt-4o 说明:使用的是github提供的Azure OpenAI的服务,可以无限薅羊毛。开源地址 进入: 地址 进入后点击 右上角“Get API key”按钮 点击“Get developer key” 选择Beta版本“Generate new to…...
elementUI进度条el-progress不显示白色
效果图 通过设置百分比为100,动态修改进度条的宽度完成 <template><div class"myProgressBox"><div class"index">{{ index }}</div><div class"typeTitle">{{ typeTitle }}</div><div class"twoP…...
学习笔记——路由——IP组播-PIM(协议无关组播)-概述/PIM模式
八、PIM(协议无关组播) 1、前言 在单播中,是一对一的模型,路由器将IP数据包发往目标地址,因此,单播路由器不用关心发送数据包得源地址。而组播数据流量由组播产生,发向一组接收者,那们组播路由器如何这道…...
TCP 协议学习
一、引言 在当今的网络通信世界中,TCP(Transmission Control Protocol,传输控制协议)是最为重要的协议之一。它为各种网络应用提供了可靠的、有序的数据传输服务,是互联网通信的基石。无论是网页浏览、电子邮件发送、…...
python3的基本数据类型:String(字符串)
一. 简介 本文简单学习了一下 python3中的一种数据类型: String(字符串)。 Python中的String类型是一种用于表示文本数据的数据类型。 它可以包含字母、数字、符号等字符,用于存储文本信息。 二. python3的基本数据类型&…...
面试总结(2024/10/16)
面试总结(2024/10/16) 面试11.闭包2.promise3.全局数据的保存4.多模板切换,布局,系统主题颜色5.同一个搜索,不同的搜索条件,输入框不同的校验方法6.自定义一个组件,包括哪些属性7.多个父组件之间…...
从图像识别到聊天机器人:Facebook AI的多领域应用
随着人工智能技术的快速发展,Facebook已在多个领域内广泛应用AI技术,以提升用户体验、提高效率并推动创新。从图像识别到聊天机器人,Facebook的AI应用涵盖了社交媒体的方方面面,下面我们将深入探讨这些应用的具体实现及其对用户生…...
linux中级(NFS服务器)
NFS:用于在NNIX/Linux主机之间进行文件共享的协议 流程:首先服务端开启RPC服务,并开启111端口,服务器端启动NFS服务,并向RPC注册端口信息,客户端启动RPC,向服务器RPC服务请求NFS端口࿰…...
微软主动出击,“钓”出网络钓鱼者
微软正采取一种巧妙的策略来对抗网络钓鱼行为者,其手段是通过访问Azure平台创建高度仿真的蜜罐租户,以此作为诱饵,吸引网络犯罪分子进入,进而收集他们的相关信息。 凭借所收集的数据,微软能够绘制出恶意基础设施的地图…...
Xcode16 编译运行YYCache iOS18 sqlite3_finalize 闪退问题解决方案
问题原因 升级Xcode 16 之后,真机运行APP,发现会有Crash,崩溃堆栈线上Crash 在 YYCache 之中。如下图所示 崩溃堆栈如下: * thread #1, queue com.apple.main-thread, stop reason signal SIGABRTframe #0: 0x00000001d9391…...
Kafka-Windows搭建全流程(环境,安装包,编译,消费案例,远程连接,服务自启,可视化工具)
目录 一. Kafka安装包获取 1. 官网地址 2. 百度网盘链接 二. 环境要求 1. Java 运行环境 (1) 对 java 环境变量进行配置 (2) 下载完毕之后进行解压 三. 启动Zookeeper 四. 启动Kafka (1) 修改Conf下的server.properties文件,修改kafka的日志文件路径 (2)…...
万网 网站建设/百度问答怎么赚钱
作用 例子 备注 E#name 产生一个id为name的标签 span#name 可以直接使用#name,默认产生的标签是div E.name 产生一个class为name的标签 span.name span.name.title 可以直接使用.name,默认产生的标签是div E>E 产生父子级结构 div>span EE 产生兄弟级结构 .side.main…...
珠宝类网站建设可执行报告/百度网站推广一年多少钱
例如有太多相似,但是不一样的类,他们都继承自同一个基类(比如大型游戏有各个种族,每个种族有各种人物,加起来几百种类型,然后基本上他们都是一个角色,都有基本相同的属性和方法,比如…...
建网站什么框架/深圳龙岗区布吉街道
vue3.x可以运行vue2.x项目吗?...
都兰县公司网站建设/橙子建站怎么收费
因为之前对于sort中传递的函数不太理解,近期又重新看到了一个关于sort的视频,特此记录一次。首先说明一下,此方式只在火狐里面有效,在谷歌里面无效,出现这种原因,我也不知道为什么。 arr [5, 4];arr.sort(…...
网站漂浮图片/什么是网络营销策略
传统的序列化很明显这种序列化有一个问题,虽然能满足append的存储模式,但无法从中读取第n个对象,每次得从第一个开始读。kafka作为一种C-S架构,C端需要和S端进行通信,批量向S端传送序列化的对象,达到batch.…...
响应式网站的设计趋势/百度关键词多少钱一个月
冒泡排序 让编程改变世界 Change the world by program [caption id"attachment_576" align"aligncenter" width"300"]冒泡排序[/caption] 好了,我们回到正题,这次的阶段性上机实践小甲鱼想让大家学点”骨髓”的东西&…...