class Solution { public: vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int color) { vector<vector<int>>flag(image.size(),vector<int>(image[0].size(),0)); int CurrColor=image[sr][sc]; dfs(image,sr,sc,color,CurrColor,flag); return image; } public: void dfs(vector<vector<int>>& image, int sr, int sc, int color,int CurrColor,vector<vector<int>>& flag) { if(!(sr>=0&&sr<image.size()&&sc>=0&&sc<image[0].size()))return; if(image[sr][sc]!=CurrColor)return; if(flag[sr][sc]==-1)return; image[sr][sc]=color; flag[sr][sc]=-1; dfs(image,sr+1,sc,color,CurrColor,flag); dfs(image,sr-1,sc,color,CurrColor,flag); dfs(image,sr,sc+1,color,CurrColor,flag); dfs(image,sr,sc-1,color,CurrColor,flag); } };
|