Flood Fill
把一个颜色替换到另一个颜色, 并且把周围的相同颜色也替换了. 注意只替换固定的颜色.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
class Solution { public int[][] floodFill(int[][] image, int sr, int sc, int newColor) { if(image[sr][sc] == newColor) return image; ff(image,sr,sc,newColor, image[sr][sc]); return image; } public void ff(int[][] m, int i, int j, int c, int o) { if(i < 0 || i >= m.length || j < 0 || j >= m[0].length || m[i][j] != o) return; m[i][j] = c; ff(m, i+1, j, c,o); ff(m, i-1, j, c,o); ff(m, i, j+1, c,o); ff(m, i, j-1, c,o); } } |