news 2026/4/16 15:52:45

50.腐烂的橘子

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
50.腐烂的橘子

1.题目描述

在给定的m x n网格grid中,每个单元格可以有以下三个值之一:

  • 0代表空单元格;
  • 1代表新鲜橘子;
  • 2代表腐烂的橘子。

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

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

2.题目思路

这是通用的BFS思路,关于图和树都可以用,如二叉树的右视图,计算二叉树的层数等题目

depth = 0 # 记录遍历到第几层 while queue 非空: depth++ n = queue 中的元素个数 循环 n 次: node = queue.pop() for node 的所有相邻结点 m: if m 未访问过: queue.push(m)

3.代码及详细注释

class Solution { public: int orangesRotting(vector<vector<int>>& grid) { //1.计算腐烂橘子和好橘子,并把腐烂橘子全都入队表示0min时刻 int count=0; queue<pair<int,int>> q; int M = grid.size(); int N = grid[0].size(); for(int i = 0;i<=M-1;i++){ for(int j = 0;j<=N-1;j++){ if(grid[i][j]==1){ count++;//好橘子总数 } else if(grid[i][j]==2){ q.push({i,j}); } } } if(count==0) return 0; int round = 0;//返回的结果 int fresh = 0; while(fresh < count &&!q.empty()){//注意这个条件,最后个新鲜橘子即将被腐烂的状态,grid[i][j]=2,fresh ==count了,然后入队列被腐烂的橘子,队列不为空,还会进行一次判断. int n = q.size(); round++; while(n>0){ int i = q.front().first; int j = q.front().second; q.pop(); if(i-1>=0 &&grid[i-1][j]==1){//top //污染橘子 fresh++; grid[i-1][j]=2; q.push({i-1,j}); } if(i+1<=M-1 && grid[i+1][j]==1){//down fresh++; grid[i+1][j]=2; q.push({i+1,j}); } if(j-1>=0 && grid[i][j-1]==1){//left fresh++; grid[i][j-1]=2; q.push({i,j-1}); } if(j+1<=N-1 && grid[i][j+1]==1){//right fresh++; grid[i][j+1]=2; q.push({i,j+1}); } n--; } } if(count-fresh!=0){ return -1; } return round; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 12:10:07

Python开发中高频报错场景全解析,附解决方案

在Python开发过程中&#xff0c;无论是初学者还是资深开发者&#xff0c;都会遇到各类报错问题&#xff0c;这些报错不仅影响开发效率&#xff0c;还可能导致程序崩溃。本文梳理了Python开发中最常出现的报错场景&#xff0c;详细分析报错原因&#xff0c;并提供针对性的解决方…

作者头像 李华
网站建设 2026/4/16 10:12:26

社会网络仿真软件:NodeXL_(15).NodeXL与其他工具的集成

NodeXL与其他工具的集成 在社会网络分析中&#xff0c;NodeXL 作为一个强大的工具&#xff0c;不仅可以独立完成网络数据的收集、分析和可视化&#xff0c;还可以与其他工具和软件进行集成&#xff0c;以扩展其功能和应用范围。本节将详细介绍 NodeXL 与其他常用工具的集成方法…

作者头像 李华
网站建设 2026/4/16 13:32:29

2026Java内卷加剧,普通程序员如何破局?

最近很多粉丝朋友跟我说&#xff1a;熬过了去年的寒冬却没熬过现在的内卷&#xff1b;打开Boss直拒一排已读不回&#xff0c;回的基本都是外包&#xff0c;薪资还给的不高&#xff0c;对技术水平要求也远超从前&#xff1b;感觉Java一个初中级岗位有上千人同时竞争&#xff0c;…

作者头像 李华
网站建设 2026/4/16 11:58:07

【游戏推荐】亲族与猎物 (Kin and Quarry)免安装中文版

类型&#xff1a; 休闲, 挂机, 采矿 链接&#xff1a;https://pan.quark.cn/s/e9bd560bc5c9 游戏简介 一个邪恶的地脉师盗走了你神圣长生树的魔法精华&#xff0c;并把它埋藏在地下深处&#xff01; 现在&#xff0c;你和你的小族群必须挖掘、开采和探掘&#xff0c;以恢复长…

作者头像 李华