gary@interview:~/interview/coding/1926-nearest-exi….md$
$ cat ./coding/1926-nearest-exit-from-entrance-in-maze.md
[Coding]

1926. Nearest Exit from Entrance in Maze

────────────────────────────────────────────────────────────

1926. Nearest Exit from Entrance in Maze

這個問題屬於 BFS 的問題

class Solution:
    def nearestExit(self, maze: List[List[str]], entrance: List[int]) -> int:
        
        directions = [(1, 0), (0, 1), (-1, 0), (0, -1)]
        rows = len(maze)
        cols = len(maze[0])
        res = 0
        q = deque([entrance])
        maze[entrance[0]][entrance[1]] = '+' 
        
        while q:
            n = len(q)
            res += 1
            for i in range(n):
                x, y = q.popleft()
                maze[x][y] = '+'
                for dx, dy in directions:
                    if 0 <= x + dx < rows and 0 <= y + dy < cols:
                        if maze[x + dx][y + dy] == '.':
                            if x + dx == 0 or x + dx == rows - 1 or y + dy == 0 or y + dy == cols - 1:
                                return res
                            else:
                                q.append([x + dx, y + dy])      
                                maze[x + dx][y + dy] = '+' 
        return -1   
--tags#Tree
$ ls ./coding/ | grep -v 1926-nearest-exit-from-entrance-in-maze
265. Paint House II256. Paint House143. Reorder List1762. Buildings With an Ocean View
← cd ../codingcd ~