1"""2from collections import deque3class Solution:4def shortestPathBinaryMatrix(self, grid: List[List[int]]) -> int:5L=len(grid)6def generate_next_state(i,j):7return [(i+1,j),(i-1,j),(i,j+1),(i,j-1),(i+1,j-1),(i+1,j+1),(i-1,j-1),(i-1,j+1)]8def valid_state(states):9res=[]10for (i,j) in states:11if i>L-1:continue12if i<0:continue13if j<0:continue14if j>L-1:continue15if grid[i][j]==0:16res.append((i,j))17return res18queue=deque([(0,0)])19res=120while queue:21for _ in range(len(queue)):22i,j=queue.popleft()23val=grid[i][j]24grid[i][j]=125if not val:26if i==L-1 and j==L-1:27return res2829next_state=valid_state(generate_next_state(i,j))30for (ki,kj) in next_state:31queue.append((ki,kj))32res+=133return -13435363738"""