Flood Fill
把一个颜色替换到另一个颜色, 并且把周围的相同颜色也替换了. 注意只替换固定的颜色.
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);
}
}