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

51.腐烂的橘子

994. 腐烂的橘子
 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一:
  • 值 0 代表空单元格;
  • 值 1 代表新鲜橘子;
  • 值 2 代表腐烂的橘子。

每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。

返回 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1 。

 示例 1:

输入:grid = [[2,1,1],[1,1,0],[0,1,1]]
输出:4

BFS————来源依旧n老师nettee

 count记录新鲜橘子数量,round记录腐败轮数,queue存入坏橘子的坐标(add/offer区别在于队列满时会不会抛异常)

算法流程:

遍历数组遇见新鲜橘子count++,遇见坏橘子存入队列

遍历队列,取出队头元素 向四周腐败(如果是新鲜橘子就污染,新鲜橘子count--,记得判断边界有效)

class Solution {public int orangesRotting(int[][] grid) {int M = grid.length;int N = grid[0].length;Queue<int[]> queue = new LinkedList<>();int count = 0;   // 新鲜橘子的数量for(int i = 0;i<M;i++)for(int j = 0;j<N;j++){if(grid[i][j] == 1) count++;if(grid[i][j] == 2) queue.offer(new int[]{i,j});}int round = 0;  // 腐烂轮数while(count>0 && !queue.isEmpty()){round++;int n = queue.size();for(int i = 0;i<n;i++){int[] orange = queue.poll();int r = orange[0];int c = orange[1];//if(r-1>=0 && grid[r-1][c]==1){grid[r-1][c] = 2;count--;queue.add(new int[]{r-1,c});}//if(r+1<M && grid[r+1][c] == 1){grid[r+1][c] = 2;count--;queue.add(new int[]{r+1, c});                    }//if(c-1>=0 && grid[r][c-1] == 1){grid[r][c-1] = 2;count--;queue.add(new int[]{r, c-1});}//if(c+1<N && grid[r][c+1] == 1){grid[r][c+1] = 2;count--;         queue.add(new int[]{r,c+1});           }}}if(count>0) return -1;  // 有新鲜橘子return round;   // 没有返回轮数
        }
}

【记一下,n老师的方法太巧妙了】

 

http://www.jsqmd.com/news/329646/

相关文章:

  • 最近在Multisim里折腾了个带数码管显示的交通灯控制系统,实测能稳定跑0-200秒倒计时,红绿灯切换还带黄灯缓冲。直接上干货说说实现思路
  • 测试用例的验证点:如何确认AI生成结果的可靠性
  • HarmonyOS NEXT 过长文字如何手动滑动查看?
  • AI生成测试用例的权限控制框架设计与实施
  • 第四天
  • 2025年精小型调节阀供货厂家权威评测与排行,自力式调节阀/电动调节阀/特种调节阀/美标调节阀/精小型调节阀调节阀制造厂家排行榜单
  • 找实习日志三(暂时结局)
  • love2d设置音频重复循环播放
  • 详细介绍:服务器开荒:安装宝塔面板
  • AI技术助力SEO关键词优化的创新策略与实践分析
  • *PDCA 循环
  • 【小程序毕设全套源码+文档】基于微信小程序的校园外卖点餐平台小程序设计与实现(丰富项目+远程调试+讲解+定制)
  • 彼得林奇对公司现金流质量的跨周期分析
  • MATLAB基于卡尔曼滤波的锂蓄电池SOC设计 用自适应卡尔曼滤波方法,基于锂离子动力电池等效...
  • 互联网大厂Java面试:从分布式事务到微服务优化的技术场景解读
  • 【小程序毕设源码分享】基于springboot+小程序的校园外卖点餐平台小程序的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 在 LangGraph 中集成 Skills 增强智能体能力
  • SOLIDWORKS 代理商如何选择?硕迪科技的三个服务特色
  • 2026年济南广告公司推荐:基于多行业应用评价,针对预算有限与效果不透明痛点指南
  • 2026年自动化数控机床哪家强?探访领先门店品牌,无人机配件数控/车铣复合数控机床,自动化数控机床采购怎么选择
  • 【小程序毕设源码分享】基于springboot+小程序的校园生活服务小程序的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 中小企业如何选择广告公司?2026年合肥广告公司推荐与评测,破解预算有限与效果不彰难题
  • 【小程序毕设全套源码+文档】ssm基于微信小程序校园失物招领信息系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • 哲学社会科学:皇帝的新装
  • 关于 AI 的学习路线图
  • 合肥广告公司哪家效果强?2026年基于技术整合与成本效益的全面推荐与排名
  • Python 并发编程实战:threading、multiprocessing 与 asyncio 的抉择之道
  • 2026年合肥广告公司推荐:五大优选机构技术、运营与效果全维度深度解析
  • 2026年铝单板厂家推荐:基于全国项目实测评价,解决异形加工与安装痛点
  • 【小程序毕设源码分享】基于SSM+小程序的校园失物招领信息系统的设计与实现(程序+文档+代码讲解+一条龙定制)