网站建设美词原创,排名seo公司,网站后台下载图片,廊坊市做网站tag:图论 广度优先搜索 https://leetcode.cn/problems/rotting-oranges/description/?envTypestudy-plan-v2envIdtop-100-liked 使用广度优先搜索#xff0c;搜索步数就是分钟数#xff0c;等到所有橘子都腐烂后#xff0c;各个橘子腐烂的最长分钟数就是全部都烂的最小… tag:图论 广度优先搜索 https://leetcode.cn/problems/rotting-oranges/description/?envTypestudy-plan-v2envIdtop-100-liked 使用广度优先搜索搜索步数就是分钟数等到所有橘子都腐烂后各个橘子腐烂的最长分钟数就是全部都烂的最小分钟数 
class Solution {public int orangesRotting(int[][] grid) {int mgrid.length;int ngrid[0].length;int[][] deepnew int[m][n];//烂的时候用了几分钟LinkedListInteger listnew LinkedList();//bfs的队列for(int i0;im;i){for(int j0;jn;j){if(grid[i][j]2){//烂橘子deep[i][j]0;//0分钟就烂一开始就是烂int indexi*nj;//一维下标list.addLast(index);//存储现有烂的}}}int res0;int[][] direction{{0,1},{0,-1},{1,0},{-1,0}};//四个方向while(list.size()!0){int beforelist.removeFirst();//取出一个烂橘子腐蚀他周围的四个int beforeibefore/n;//iint beforejbefore%n;//jfor(int d0;d4;d){int nextibeforeidirection[d][0];int nextjbeforejdirection[d][1];//检查越界是否是可以被腐蚀的新鲜橘子if(nexti0nextj0nextimnextjngrid[nexti][nextj]1){grid[nexti][nextj]2;//变烂deep[nexti][nextj]deep[beforei][beforej]1;//保存分钟数resMath.max(res,deep[nexti][nextj]);//最大分钟数更新list.addLast(nexti*nnextj);//将这个烂橘子加入bfs队列}}}for(int i0;im;i){for(int j0;jn;j){if(grid[i][j]1)//还存在新鲜橘子return -1;}}return res;}
}