件名の説明:
アイデアは:
まず、新鮮なオレンジ判断に数グリッドの機能を記述し
、その後、その後、新鮮なオレンジ、フレッシュなオレンジ色数が変化しない場合の数を決定するために、再び、分後に、グリッド与えられた腐ったミカンに目を向けます-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;
}
};