当前位置: 首页 > 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.gsyq.cn/news/17321.html

相关文章:

  • 月嫂面试题
  • 对顶堆维护区间中位数板子
  • 2025 布袋包装厂家最新推荐榜:自贸区实力厂商领衔,含手提袋、帆布袋等全品类,年销 500 万级生产商精选无纺布袋/布袋生产/云南布袋包装/茶叶布袋厂家推荐
  • 2025 火烧板源头厂家最新推荐榜单:自有矿山保障品质,高硬度耐磨产品全覆盖,五莲花 / 芝麻白 / 防滑芝麻黑采购优选指南
  • Luogu P11660 我终将成为你的倒影 题解 [ 紫 ] [ 分块 ] [ 分类讨论 }
  • 深入解析:【LeetCode 热题100】回溯:括号生成 组合总和(力扣22 / 39 )(Go语言版)
  • 完整教程:基于 COM 的 XML 解析技术(MSXML) 的总结
  • PCIe扫盲——链路初始化与训练基础(二)
  • VMware ESXi 8.0U3g macOS Unlocker OEM BIOS 2.7 H3C 新华三 定制版
  • [计算机组成] 计算机字体文件及其运行原理
  • 滚动导航 - unique
  • C#基础:启用线程池执行并行任务
  • P1545 [USACO04DEC] Dividing the Path G 题解
  • java作业2
  • 关于PPT的课后作业
  • RK 系列 GPU 驱动检查方法
  • 算法第一章
  • mac打开app提示文件损坏解决方案
  • 考研系列—操作系统:冲刺笔记(1-3章) - 指南
  • 2025工业网线优质厂家最新推荐榜:品质卓越与技术领先之选
  • sg.Multiline 和 sg.Output 有什么区别?怎么看起来一样?
  • Syncfusion重构Essential Studio套件,为开发者提供更灵活选择
  • 2025 年逸发粘接认证推荐:依托德系标准与全链条服务,打造粘接及复材技术解决方案优质选择
  • Prj09--8088单板机C语言8253产生1KHz方波(1) - 详解
  • Rocky9系统Grub修复实验
  • Linux 与 Windows:哪个操作便捷的系统适合你?
  • 2025 年绞车源头厂家最新推荐榜:双速 / 回柱 / 张紧等设备优质直供企业,口碑与实力兼具!张紧/运输/凿井/矿用绞车厂家推荐
  • set 初始化
  • PCIe扫盲——链路初始化与训练基础(一)
  • 2025 波纹管生产厂家最新推荐榜:预应力 / 镀锌金属等品类精选,成都津钢领衔优质品牌清单