0286:墙与门(★)
目录
题目
你被给定一个 m × n
的二维网格 rooms
,网格中有以下三种可能的初始化值:
-1
表示墙或是障碍物0
表示一扇门INF
无限表示一个空的房间。然后,我们用231 - 1 = 2147483647
代表INF
。你可以认为通往门的距离总是小于2147483647
的。
你要给每个空房间位上填上该房间到 最近门的距离 ,如果无法到达门,则填 INF
即可。
示例 1:
输入:rooms = [[2147483647,-1,0,2147483647],[2147483647,2147483647,2147483647,-1],[2147483647,-1,2147483647,-1],[0,-1,2147483647,2147483647]] 输出:[[3,-1,0,1],[2,2,1,-1],[1,-1,2,-1],[0,-1,3,4]]
示例 2:
输入:rooms = [[-1]] 输出:[[-1]]
示例 3:
输入:rooms = [[2147483647]] 输出:[[2147483647]]
示例 4:
输入:rooms = [[0]] 输出:[[0]]
提示:
m == rooms.length
n == rooms[i].length
1 <= m, n <= 250
rooms[i][j]
是-1
、0
或231 - 1
分析
典型的多源 bfs,从门开始遍历即可。
解答
|
|
76 ms