当前位置: 首页 > 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.jsqmd.com/news/10158/

相关文章:

  • 深入解析:Python应用函数的定义与调用(一)
  • 3,信号与槽机制 - 教程
  • 课后思考及作业:方法
  • 2025国庆Day7
  • 月嫂面试题
  • 深入理解 JSX:React 的核心语法 - 实践
  • 对顶堆维护区间中位数板子
  • AXURE-动态面板 - 实践
  • 把握一个Makefile的脉络
  • AI元人文:共识锚定与智慧剪枝——构建人机共生认知经济体的完善理论体系与实践路径
  • 羊蹄
  • 出题系统
  • io控制方式
  • 【基础】 - ACPI是什么?
  • 我 是 人 机
  • 方法作业
  • 2025 汽车改装公司最新推荐榜:一站式服务生态企业盘点,含奔驰宝马新能源改装及新锐品牌权威测评重庆宝马汽车改装/重庆新能源汽车改装/重庆汽车改装贴膜/重庆汽车改装轮毂刹车公司推荐
  • 2025 布袋包装厂家最新推荐榜:自贸区实力厂商领衔,含手提袋、帆布袋等全品类,年销 500 万级生产商精选无纺布袋/布袋生产/云南布袋包装/茶叶布袋厂家推荐
  • 2025 年阳光导入源头厂家最新推荐榜:领军企业技术实力、案例与直销模式深度解析及选择指南工厂/学校/医院/地下车库/隧道阳光导入系统厂家推荐
  • 用低成本FPGA实现FSMC接口的多串口(UART)控制器
  • 2025 火烧板源头厂家最新推荐榜单:自有矿山保障品质,高硬度耐磨产品全覆盖,五莲花 / 芝麻白 / 防滑芝麻黑采购优选指南
  • 实用指南:Python数据可视化科技图表绘制系列教程(一)
  • Luogu P11660 我终将成为你的倒影 题解 [ 紫 ] [ 分块 ] [ 分类讨论 }
  • 2025 年最新推荐!小程序开发机构排行榜:覆盖定制开发 / 电商 / 预订 / 配送多场景优质服务商成都小程序开发/小程序定制开发/电商小程序开发/预订服务小程序开发公司推荐
  • CF280D k-Maximum Subsequence Sum 题解(线段树+反悔贪心维护k段最大子段和)
  • 2025年微信小程序开发:趋势、最佳实践与AI整合 - 指南
  • 深入解析:【LeetCode 热题100】回溯:括号生成 组合总和(力扣22 / 39 )(Go语言版)
  • 完整教程:基于 COM 的 XML 解析技术(MSXML) 的总结
  • 详细介绍:Windows如何定制键盘按键
  • TheHackersLabs Templo writeup