评论区有很多bfs板子的解法,我这里没有用队列,介绍一种很直白暴力,容易理解的方法。思路其实很简单,先搜索一遍,计算有橘子的数量,也就是腐烂的和新鲜的总数,再单独获得腐烂的数量。为什么呢?因为当搜索的时候,已腐烂的数量等于总橘子数时,说明已经完成“感染了”这个时候可以返回分钟数,但是怎么判断无法感染完所有的?很简单,我们在每一轮循环引入incre表示该轮感染的数量,如果为0表没办法感染了,因此就返回-1。
有两点需要注意:
第一是如果sum等于rot的话直接返回0,这个需要在开头特殊判断,第二是每一轮应该新new一个图来更新。
要记得在搜索到新鲜橘子后把新鲜橘子搜索路径设置为true,否则在同一轮会让刚被感染的橘子又去感染他的周围,这样不符合题意
标签:994,一轮,感染,新鲜,力扣,搜索,橘子,腐烂 From: https://blog.csdn.net/2401_86802167/article/details/144891584