class Solution {
int m,n,sr,sc;
int prev;
public int[][] floodFill(int[][] image, int sr, int sc, int color) {
if(image[sr][sc] == color) return image;
m = image.length;
n = image[0].length;
prev = image[sr][sc];
dfs(image,sr,sc, color);
return image;
}
int[] dx = {0,0,-1,1};
int[] dy = {-1,1,0,0};
private void dfs(int[][] image, int i, int j, int color){
image[i][j] = color;
for(int k = 0; k < 4; k++){
int x = i + dx[k]; int y = j + dy[k];
if(x >= 0 && x < m && y >= 0 && y < n && prev == image[x][y]){
dfs(image,x,y,color);
}
}
}
}