1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| class Solution{
int[] dx={1,0,0,-1};
int[] dy={0,1,-1,0};
public int[][] floodFill(int[][] image,int sr,int sc,int color){
int curColor=image[sr][sc];
if(curColor!=color){
dfs(image,sr,sc,curColor,color);
}
return image;
}
public void dfs(int[][] image,int x,int y,int curColor,int color){
if(image[x][y]==curColor){
image[x][y]=color;
for(int i=0;i<4;i++){
int mx=x+dx[i],my=y+dy[i];
if(mx>=0&&mx<=image.length&&my>=0&&my<=image[0].length){
dfs(image,mx,my,curColor,color);
}
}
}
}
}
|