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

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.创建队列用于bfsQueue<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];//如果在网格内且是新鲜橘子,将它变成腐烂橘子,并把新鲜橘子数-1if(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.xdnf.cn/news/710875.html

相关文章:

  • GPIO模拟串口通信
  • DeepSeek - 尝试一下GitHub Models中的DeepSeek
  • Vue2部分知识点和注意项
  • SAP销售订单批导创建
  • C/C++ OpenCV 矩阵运算
  • CentOS:企业级Linux的社区力量与未来演进
  • vue-seamless-scroll 结束从头开始,加延时后滚动
  • Windows 11 全角半角切换方法
  • 极坐标系下的极径 r 表示点到原点的距离 大于等于0
  • WEB安全--SQL注入--bypass技巧2
  • 深入理解C#中的委托与事件:从基础到高级应用
  • 【PhysUnits】15.3 引入P1后的取反特质(not.rs)
  • Cursor完整安装和使用指南
  • js继承方法
  • 防范DDoS攻击,服务器稳定性崩溃的根源与高效防御对策
  • Spring AI 1.0 GA深度解析与最佳实践
  • 5G RedCap是什么-与标准5G的区别及支持路由器推荐
  • 野火教程/SDIO工作流程/SDIO笔记
  • C#泛型约束
  • ai如何绘制mg人物的睫毛
  • 虚拟机数据挂载映射
  • DeepSeek 赋能低空经济:无人机智能调度的破局之道
  • 自定义openfeign日志、拦截器、以及替换httpclient使用连接池
  • 华为OD机试真题——战场索敌(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 软考-系统架构设计师-第一章 架构设计基础
  • 11高可用与容错
  • HOW - 简历和求职面试宝典(六)
  • el-table-column如何获取行数据的值
  • lua注意事项
  • 【数据集信息整理】道路病害(缺陷)检测数据集归纳