BFS模版化代码
class Solution {
public:
int solve(vector<vector<char> >& grid) {
// write code here
int dp[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
int m=grid.size(),n=grid[0].size(),res=0;
queue<pair<int,int>> q;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(grid[i][j]=='1'){
q.emplace(i,j);
res++;
while(q.size()){
auto[I,J]=q.front();
q.pop();
for(int k=0;k<4;k++){
int i1=I+dp[k][0],j1=J+dp[k][1];
if(i1>-1 && i1<m && j1>-1 && j1<n && grid[i1][j1]=='1'){
grid[i1][j1]='2';
q.emplace(i1,j1);
}
}
}
}
}
}
return res;
}
};

京公网安备 11010502036488号