题目: 服务网格,经过几小时, 文件拓扑全网
{0,1,0,1,0}, => {1,1,1,1,1},
{0,1,0,0,1}, {1,1,1,1,1},
{0,1,0,0,1} {1,1,1,1,1}
public int max(int[][] grid) {
int result = 0;
for (int r = 0; r < grid.length; r++) {
for (int c = 0; c < grid[0].length; c++) {
if (grid[r][c] == 1) {
queue.offer(new IntPair(r,c,1));
}
}
}
while (queue.peek() != null) {
IntPair node = queue.poll();
if (!(0 <= r && r < grid.length
&& 0 <= c && c < grid[0].length) &&
grid[node.r][node.c] > 1) {
continue;
}
grid[node.r][node.c] = node.step+1;
if(result<grid[node.r][node.c]){
result = grid[node.r][node.c];
}
queue.offer(new IntPair(node.r - 1 , node.c , grid[node.r][node.c]));
queue.offer(new IntPair(node.r + 1 , node.c , grid[node.r][node.c]));
queue.offer(new IntPair(node.r , node.c - 1 , grid[node.r][node.c]));
queue.offer(new IntPair(node.r , node.c + 1 , grid[node.r][node.c]));
}
return result-2;
}