void dfs(vector<vector<int>>& image,int x,int y,int oldcolor,int newcolor)
{
if(x<0||x>=image.size()||y<0||y>=image[0].size()) return; //image[0]对应的这幅图像的y轴坐标
if(image[x][y]!=oldcolor||image[x][y]==newcolor) return;
image[x][y]=newcolor;
dfs(image,x+1,y,oldcolor,newcolor);
dfs(image,x-1,y,oldcolor,newcolor);
dfs(image,x,y+1,oldcolor,newcolor);
dfs(image,x,y-1,oldcolor,newcolor);
}
vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int newColor) {
int oldColor =image[sr][sc];
if(newColor!=oldColor) dfs(image,sr,sc,oldColor,newColor);
return image;
}
这里用到了vector<vector<int>>构建二维数组,比如:
vector<vector<int>>image = [[1,1,1],[1,1,0],[1,0,1]],
那么image[0]=[1,1,1],image.size()==3(相当于image(3))
所有dfs里面有句代码 if(x<0||x>=image.size()||y<0||y>=image[0].size()) return;
表示的就是x不能大于x轴的长度,y不能大于y轴的长度。