994 LeetCode 腐烂的橘子
作者:互联网
题目描述:
思路:
首先编写一个判断网格中新鲜橘子的数量的函数
然后再查找给定网格中的腐烂的橘子,在经过一分钟后,再次判断新鲜橘子的数量,如果新鲜橘子的数量没有变化,那么返回-1,反之再次循环
直到新鲜橘子的数量是0
代码如下:
class Solution {
public:
int nums(vector<vector<int>>A){
int s=0;
for(int i=0;i<A.size();i++){
for(int j=0;j<A[0].size();j++){
if(A[i][j]==1)
s++;
}
}
return s;
}
int orangesRotting(vector<vector<int>>& grid) {
int sum=0;
int pre=nums(grid);
while(pre>0){
vector<vector<int>>temp=grid;
for(int i=0;i<grid.size();i++){
for(int j=0;j<grid[0].size();j++){
if(grid[i][j]==2){
if(i>0){
if(temp[i-1][j]==1)
temp[i-1][j]=2;
}
if(i<grid.size()-1){
if(temp[i+1][j]==1)
temp[i+1][j]=2;
}
if(j>0){
if(temp[i][j-1]==1)
temp[i][j-1]=2;
}
if(j<grid[0].size()-1){
if(temp[i][j+1]==1)
temp[i][j+1]=2;
}
}
}
}
int cur=nums(temp);
if(cur==pre)
return -1;
else {
sum++;
pre=cur;
grid=temp;
}
}
return sum;
}
};
标签:pre,994,temp,int,新鲜,grid,橘子,LeetCode 来源: https://blog.csdn.net/peachzy/article/details/104672637