LC: 286. Walls and Gates
https://leetcode.com/problems/walls-and-gates/
286. Walls and Gates
You are given an m x n grid rooms initialized with these three possible values.
-1A wall or an obstacle.0A gate.INFInfinity means an empty room. We use the value231 - 1 = 2147483647to representINFas you may assume that the distance to a gate is less than2147483647.
Fill each empty room with the distance to its nearest gate. If it is impossible to reach a gate, it should be filled with INF.
Example 1:
Input: rooms = [[2147483647,-1,0,2147483647],[2147483647,2147483647,2147483647,-1],[2147483647,-1,2147483647,-1],[0,-1,2147483647,2147483647]]
Output: [[3,-1,0,1],[2,2,1,-1],[1,-1,2,-1],[0,-1,3,4]]Example 2:
Input: rooms = [[-1]]
Output: [[-1]]Example 3:
Input: rooms = [[2147483647]]
Output: [[2147483647]]Example 4:
Input: rooms = [[0]]
Output: [[0]]Constraints:
m == rooms.lengthn == rooms[i].length1 <= m, n <= 250rooms[i][j]is-1,0, or231 - 1.
The Essence:
Wenn das Gitter gleichzeitig von jeder Tor angefangen durchgelaufen wird und eine Position aus einer Tor erreicht, dann ist der kürzeste Abstand aus den Toren genau der Abstand, mit dem man in die Position erstmal kommt.
Details:
Dieses Verfahren entspricht einer Breitensuche aus den Toren. Die Anwendung der Breitensuche hier zeigt, wie Vorkenntnisse bei der Problemlösung hilfreich sein können.
Solution(s):
Default Code:
Last updated