733. 图像渲染
深度遍历 加上 方向数组
代码
class Solution {
public:
void fill(vector<vector<int>>& image, int sr, int sc, int newColor,vector<vector<int>>& visited,int in){
visited[sr][sc]=1;
image[sr][sc]=newColor;
int dir[4][2] = {{0, 1}, {1, -1}, {-1, -1}, {-1, 1}};
for(int i=0;i<4;i++){
sr+=dir[i][0];
sc+=dir[i][1];
if(sr>=0&&sr<image.size()&&sc>=0&&sc<image[0].size()&&visited[sr][sc]==0&&image[sr][sc]==in) {
fill(image,sr,sc,newColor,visited,in);
}
}
}
vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int newColor) {
int m=image.size();
int n=image[0].size();
int in=image[sr][sc];
vector<vector<int>> visited(m,vector<int>(n));
fill(image,sr,sc,newColor,visited,in);
return image;
}
};