1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| class Solution { public int[][] floodFill(int[][] image, int sr, int sc, int newColor) { int oldColor = image[sr][sc]; if (oldColor != newColor){ dfs(image,sr,sc,oldColor,newColor); }
return image; } private void dfs(int[][] image, int r, int c, int oldColor, int newColor){ if (image[r][c] == oldColor){ image[r][c] = newColor; if (r>=1){ dfs(image,r-1,c,oldColor,newColor); } if (c>=1){ dfs(image,r,c-1,oldColor,newColor); } if (r<image.length-1){ dfs(image,r+1,c,oldColor,newColor); } if (c<image[0].length-1){ dfs(image,r,c+1,oldColor,newColor); } } } }
|