原题目:https://leetcode-cn.com/problems/flood-fill/
思路:
采用dfs,对满足条件(索引没有越界,颜色和image[sr,sc]一样)的点,变换成新颜色。
注意:新颜色如果和原来的一样,就直接返回。
代码:
class Solution {
public:
void dfs(vector<vector<int>>& ans, int c,int sr,int sc,int newColor){
if(sr>=0&&sr<ans.size()&&sc>=0&&sc<ans[0].size()&&ans[sr][sc]==c){
ans[sr][sc] = newColor;
}
else return;
dfs(ans,c,sr-1,sc,newColor);
dfs(ans,c,sr+1,sc,newColor);
dfs(ans,c,sr,sc-1,newColor);
dfs(ans,c,sr,sc+1,newColor);
}
vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int newColor) {
int c = image[sr][sc];
if(c==newColor) return image;
dfs(image,c,sr,sc,newColor);
return image;
}
};