Walls and Gates

You are given am 2D grid initialized with these three possible values.

1. -1 - A wall or an obstacle.
2. 0 - A gate.
3. INF - Infinity means an empty room. (2147483647).

Fill each empty room with the distance to its nearest gate. If it is impossible to reach a gate, it should be filled withINF.

Example

Given the 2D grid:

INF  -1  0  INF
INF INF INF  -1
INF  -1 INF  -1
  0  -1 INF INF

After running your function, the 2D grid should be:

  3  -1   0   1
  2   2   1  -1
  1  -1   2  -1
  0  -1   3   4

Note

多起点的BFS求最短距离,这里把门作为起点加入队列

必须满足:

因为我们求最短距离

Code

Last updated