题目链接:LeetCode733
分析:可以想象成一滴墨水落在画着格子的纸上,又是熟悉的配方,还是熟悉的味道。
思路:bfs或dfs
代码:
class Solution {
public int[][] floodFill(int[][] image, int sr, int sc, int newColor) {
int currentColor=image[sr][sc];
if(currentColor==newColor)return image;
int n=image.length;
if(n==0)return image;
int m=image[0].length;
Queue<int[]> queue=new LinkedList<>();
int[][] xy=new int[][]{{0,0,-1,1},{-1,1,0,0}};
int x,y,nx,ny;
queue.add(new int[]{sr,sc});
image[sr][sc]=newColor;
while(queue.size()>0){
int[] top=queue.poll();
x=top[0];y=top[1];
for(int i=0;i<4;i++){
nx=x+xy[0][i];
ny=y+xy[1][i];
if(nx>=0&&nx<n&&ny>=0&&ny<m&&image[nx][ny]==currentColor){
queue.add(new int[]{nx,ny});
image[nx][ny]=newColor;
}
}
}
return image;
}
}