https://leetcode.cn/problems/flood-fill/
class Solution {
public:
vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int newColor) {
int curcolor = image[sr][sc];
if(newColor == image[sr][sc])
return image;
else
dfs(image,sr,sc,curcolor,newColor);
return image;
}
void dfs(vector<vector<int>>& image,int sr,int sc,int curcolor,int newcolor){
int rs = image.size(); //sr边界
int rc = image[0].size(); //sc边界
if(image[sr][sc] == curcolor){
//如果image中有和初值一样的才进行搜索 搜索为上下左右四个方向并且存在边界值
image[sr][sc] = newcolor; //赋值
if(sr - 1 >= 0) dfs(image,sr - 1,sc,curcolor,newcolor);
if(sr + 1 <= rs - 1) dfs(image,sr + 1,sc,curcolor,newcolor);
if(sc - 1 >= 0) dfs(image,sr,sc - 1,curcolor,newcolor);
if(sc + 1 <= rc - 1) dfs(image,sr,sc + 1,curcolor,newcolor);
}
}
};