Ближайший выход из входа в лабиринтPython

Программы на Python
Anonymous
Ближайший выход из входа в лабиринт

Сообщение Anonymous »

Я пытаюсь решить следующий вопрос
https://leetcode.com/problems/nearest-e ... study-plan -v2&envId=leetcode-75
Это мой подход
`def Insidemaze(r,c,nrow,ncol,grid):
if (( r>=0 и r=0 и c int:

Код: Выделить всё

    queue = collections.deque()
queue.append([entrance[0],entrance[1],0])

dirs = ((1, 0), (-1, 0), (0, 1), (0, -1))
maze[entrance[0]][entrance[1]] = "+"

nrow = len(maze)
ncol = len(maze[0])

while queue :
print("queue =" , queue)
a = queue.popleft()
maze[a[0]][a[1]] = "+"
for dir in dirs :
b = [ a[0] + dir[0] , a[1] + dir[1] ]
print("b=",b)
if (insidemaze(b[0],b[1],nrow,ncol,maze) ) :
if (isboundary(b[0],b[1],nrow,ncol,maze) and (maze[b[0]][b[1]] == "." ) ) :
return(a[2]+1)
else :
if maze[b[0]][b[1]] == "." :
queue.append([b[0],b[1],a[2]+1])
else:
print("do nothing")
return(-1)
`
Я использую BFS для поиска решения, и это наиболее оптимизированный подход, который я могу придумать, но это приводит к ошибке< /p>

Код: Выделить всё

Time limit exceeded
при больших входных значениях
пожалуйста, дайте мне знать, если есть какие-либо предложения по увеличению скорости.
Спасибо,
Сиддхарт

Подробнее здесь: https://stackoverflow.com/questions/785 ... -in-a-maze

Вернуться в «Python»