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);
    }
}