一、题目
给定一个 m × n 的二维网格,网格中有以下三种可能的初始化值:
-1 表示墙或是障碍物
0 表示一扇门
INF 无限表示一个空的房间。然后,我们用
你要给每个空房间位上填上该房间到 最近门的距离,如果无法到达门,则填 INF 即可。
样例1:
二、思路
(1)先将所有门入队,从所有门开始BFS,入队的是点坐标,可以用pair
结构。
(2)入队时更新距离,而不是出队时,防止重复入队。
(3)更新的条件是rooms[newx][newy] > rooms[x][y] + 1
,这里的rooms[x][y] + 1
在本轮次(从该当前门开始BFS)遍历中本该属于该节点的树高度,如果这个高度(路径)更小自然就要更新了。
三、代码