Конин Георгий/escape-a-large-maze

Материал из DISCOPAL
Версия от 14:47, 31 октября 2024; Конин Георгий (обсуждение | вклад) (Новая страница: «==Задача== * Leetcode/escape-a-large-maze ==Код== <source lang="python"> class Solution: def isEscapePossible(self, blocked: List[List[int]], so…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Задача

Код

class Solution:
    def isEscapePossible(self, blocked: List[List[int]], source: List[int], target: List[int]) -> bool:
 
        blocked = {tuple(p) for p in blocked}
 
        def bfs(source,target):
            queue =  [source]
            visited = {tuple(source)}
 
            for x0,y0 in queue:
                for (i,j) in [(1,0),(-1,0),(0,-1),(0,1)]:
                    x = x0+i
                    y = y0+j 
                    if 0 <= x < 10**6 and 0 <= y < 10**6 and (x,y) not in visited and (x,y) not in blocked:
                        if [x,y] == target: 
                            return True 
                        queue.append([x,y])
                        visited.add((x,y))
 
                if len(queue) == 30000:
                    return True 
 
            return False 
 
        return bfs(source,target) and bfs(target,source)

Submission

https://leetcode.com/problems/escape-a-large-maze/submissions/1439111016/Check-me-animated.gif Решено: Конин Георгий 14:47, 31 октября 2024 (UTC)

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.