题目描述
542. 01 矩阵
AC代码
class Solution {
public int[][] updateMatrix(int[][] matrix) {
Queue<int[]> q=new LinkedList<>();
int n=matrix.length,m=matrix[0].length;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
if(matrix[i][j]==0)
q.add(new int[]{i,j});
else
matrix[i][j]=-1;
int dx[]={-1,0,1,0},dy[]={0,1,0,-1};
while(!q.isEmpty()){
int[] cur=q.peek();
q.poll();
for(int i=0;i<4;i++){
int x=cur[0]+dx[i],y=cur[1]+dy[i];
if(x>=0&&x<n&&y>=0&&y<m&&matrix[x][y]==-1)
{
matrix[x][y]=matrix[cur[0]][cur[1]]+1;
q.add(new int[]{x,y});
}
}
}
return matrix;
}
}