Esempio n. 1
0
 def test_walls_and_gates(self):
     rooms = [[float("inf"), -1, 0, float("inf")], 
             [float("inf"), float("inf"), float("inf"), -1], 
             [float("inf"), -1, float("inf"), -1], 
             [0, -1, float("inf"), float("inf")]]
     walls_and_gates(rooms)
     self.assertEqual([[3, -1, 0, 1], [2, 2, 1, -1], [1, -1, 2, -1], [0, -1, 3, 4]], rooms)
Esempio n. 2
0
"""
You are given a m x n 2D grid initialized with these three possible values:
    -1: A wall or an obstacle.
    0: A gate.
    INF: Infinity means an empty room. We use the value 2^31 - 1 = 2147483647 to represent INF
         as you may assume that the distance to a gate is less than 2147483647.
Fill the empty room with distance to its nearest gate.
If it is impossible to reach a gate, it should be filled with INF.
For 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
"""
from algorithms.dfs import walls_and_gates
INF = 2147483647  #2**31 - 1
alist = [[INF, -1, 0, INF], [INF, INF, INF, -1], [INF, -1, INF, -1],
         [0, -1, INF, INF]]

walls_and_gates(alist)
print(alist)

## 박제준 6/8