题目链接:https://leetcode-cn.com/problems/color-fill-lcci/
题目如下:
class Solution {
public:
vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int newColor) {
int m=image.size();
if(m==0) return image;
int n=image[0].size();
int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
queue<pair<int,int>> que;
que.push(make_pair(sr,sc));
int pre=image[sr][sc];//用于判断其他节点是否相连
image[sr][sc]=newColor;
while(que.size()!=0){
auto e=que.front();
que.pop();
int x=e.first;
int y=e.second;
for(int i=0;i<4;i++){
int a=x+dx[i];
int b=y+dy[i];
if(a<0||a>=m||b<0||b>=n||image[a][b]==newColor||image[a][b]!=pre) continue;
image[a][b]=newColor;
que.push(make_pair(a,b));
}
}
return image;
}
};