Leetcode 994. 腐烂的橘子 多源 BFS
原题链接: 994. 腐烂的橘子
class Solution {
public:int orangesRotting(vector<vector<int>>& grid) {int m=grid.size();int n=grid[0].size();int res=0,fresh=0;queue<pair<int,int>> q;for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(grid[i][j]==2){q.push({i,j});}else if(grid[i][j]==1){fresh++;}}}if(!fresh) return 0;int num=q.size();vector<int> d1={-1,1,0,0};vector<int> d2={0,0,-1,1};while(!q.empty()){int tmp=0;res++;while(num--){pair<int,int> node=q.front();int x=node.first;int y=node.second;q.pop();for(int i=0;i<4;i++){int x1=x+d1[i];int y1=y+d2[i];if(x1>=0 && x1<m && y1>=0 && y1<n && grid[x1][y1]==1){grid[x1][y1]=2;tmp++;fresh--;q.push({x1,y1});}}}num=tmp;}return fresh>0 ? -1:res-1;}
};