当前位置: 首页 > news >正文

2025年- H57-Lc165--994.腐烂的橘子(图论,广搜)--Java版 - 教程

2025年- H57-Lc165--994.腐烂的橘子(图论,广搜)--Java版 - 教程

1.题目描述

在这里插入图片描述

2.思路

在这里插入图片描述

3.代码实现

import java.util.LinkedList
;
import java.util.Queue
;
public
class H994 {
public
int orangesRotting(
int[][] grid) {
//1.获取行数
int rows=grid.length;
int cols=grid[0].length;
//2.创建队列用于bfs
Queue<
int[]> que=
new LinkedList<
>(
)
;
//3.记录新鲜橘子的数量
int fresh=0
;
//4.遍历整个网络,初始化队列
for(
int i=0
;i<rows;i++
)
{
for(
int j=0
;j<cols;j++
)
{
//如果是腐烂的橘子,加入队列中作为bfs的起点
if(grid[i][j]==2
)
{
//把腐烂橘子当前坐标加入到队列中
que.offer(
new
int[]{
i,j
}
)
;
}
//如果是新鲜橘子,统计数量
if(grid[i][j]==1
)
{
fresh++
;
}
}
}
//如果没有新鲜的橘子,直接返回0分钟
if(fresh==0
)
return 0
;
//定义方向数组,用于上下左右
int[][] dirs={
{
1
,0
}
,{
0
,1
}
,{
0
,-1
}
,{
-1
,0
}
}
;
int minutes=0
;
//记录分钟数
//bfs开始,因为que存储了腐烂的橘子的坐标
while(!que.isEmpty(
)
)
{
int size=que.size(
)
;
//这一分钟是否有橘子感染
boolean rotted=false
;
for(
int i=0
;i<size;i++
)
{
int[] pos=que.poll(
)
;
//删除队首元素,并返回队首元素的值
int x=pos[0]
;
int y=pos[1]
;
//遍历腐烂橘子的四个方向
//dirs是二维数组,也就是一维数组dir[]的一维数组
for(
int[] dir:dirs)
{
int nextx=x+dir[0]
;
int nexty=y+dir[1]
;
//如果在网格内且是新鲜橘子,将它变成腐烂橘子,并把新鲜橘子数-1
if(nextx>=0&&nextx<rows&&nexty>=0&&nexty<cols&&grid[nextx][nexty]==1
)
{
//变成腐烂橘子
grid[nextx][nexty]=2
;
//新鲜橘子数量减少
fresh--
;
//加入下一轮处理
que.offer(
new
int[]{
nextx,nexty
}
)
;
rotted=true
;
//防止腐烂的橘子重复计数
}
}
}
if(rotted==true
)
{
minutes++
;
}
}
if(fresh==0
)
{
return minutes;
}
else {
return -1
;
}
}
public
static
void main(String[] args)
{
int[][] grid={
{
2
,1
,1
}
,{
1
,1
,0
}
,{
0
,1
,1
}
}
;
H994 test=
new H994(
)
;
int result=test.orangesRotting(grid)
;
System.out.print(result)
;
}
}
http://www.hskmm.com/?act=detail&tid=26805

相关文章:

  • 3,信号与槽机制 - 教程
  • 课后思考及作业:方法
  • 2025国庆Day7
  • 月嫂面试题
  • 把握一个Makefile的脉络
  • 笔记 基础算法
  • P10068 [CCO 2023] Line Town
  • AI元人文:共识锚定与智慧剪枝——构建人机共生认知经济体的完善理论体系与实践路径
  • 出题系统
  • io控制方式
  • Java课后作业
  • 我 是 人 机
  • 28定律及其扩展衍生
  • 3516cv610在sample_aiisp上多创一路编码流,方法 - 详解
  • 2025氧化石墨烯、羧基化石墨烯、巯基化石墨烯、羟基化石墨烯、氨基化石墨烯、氮掺杂氧化石墨烯、氮掺杂石墨烯最新推荐、全面剖析优质厂商实力与选购要点
  • 2025-10-8模拟测验
  • QBXT2025S刷题 Day7
  • 【Python】调用C++
  • 方法作业
  • [100ask_imx6ullpro] buildroot构建emmc镜像并烧录
  • 2025 汽车改装公司最新推荐榜:一站式服务生态企业盘点,含奔驰宝马新能源改装及新锐品牌权威测评重庆宝马汽车改装/重庆新能源汽车改装/重庆汽车改装贴膜/重庆汽车改装轮毂刹车公司推荐
  • 2025 布袋包装厂家最新推荐榜:自贸区实力厂商领衔,含手提袋、帆布袋等全品类,年销 500 万级生产商精选无纺布袋/布袋生产/云南布袋包装/茶叶布袋厂家推荐
  • 2025 年成型机厂家最新推荐排行榜:冷弯 / 光伏支架 / 门业 / 建材等领域设备企业精度与耐用性实测点评魔方方管/门框角码/导槽/底樑/光伏支架/C型钢成型机厂家推荐
  • 2025 年平板机厂家最新推荐榜单:聚焦技术实力与市场口碑,5 大优质品牌实测点评
  • 语音识别与合成的融合技术解析
  • 2025 年阳光导入源头厂家最新推荐榜:领军企业技术实力、案例与直销模式深度解析及选择指南工厂/学校/医院/地下车库/隧道阳光导入系统厂家推荐
  • 从Node.js到React/Vue3:流式输出实用的技术的全栈实现指南
  • 用低成本FPGA实现FSMC接口的多串口(UART)控制器
  • 2025 火烧板源头厂家最新推荐榜单:自有矿山保障品质,高硬度耐磨产品全覆盖,五莲花 / 芝麻白 / 防滑芝麻黑采购优选指南
  • 2025 年太阳能路灯厂商最新推荐榜:聚焦优质企业,从技术实力到合作案例全方位解析太阳能道路灯/景观灯/警示灯/庭院灯/草坪灯/杀虫灯厂家推荐