Конин Георгий/escape-a-large-maze — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
(Новая страница: «==Задача== * Leetcode/escape-a-large-maze ==Код== <source lang="python"> class Solution: def isEscapePossible(self, blocked: List[List[int]], so…»)
 
Строка 1: Строка 1:
==Задача==
+
== Задача ==
 
* [[Leetcode/escape-a-large-maze]]
 
* [[Leetcode/escape-a-large-maze]]
  
==Код==
+
== Код ==
 
<source lang="python">
 
<source lang="python">
 
class Solution:
 
class Solution:
Строка 33: Строка 33:
 
== Submission ==
 
== Submission ==
  
https://leetcode.com/problems/escape-a-large-maze/submissions/1439111016/{{checkme|[[Участник:Конин Георгий|Конин Георгий]] 14:47, 31 октября 2024 (UTC)}}
+
https://leetcode.com/problems/escape-a-large-maze/submissions/1439111016/
 +
 
 +
 
 +
[[Участник:StasFomin|StasFomin]] 02:22, 6 ноября 2024 (UTC): {{BadStyle}}

Версия 02:22, 6 ноября 2024

Задача

Код

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/


StasFomin 02:22, 6 ноября 2024 (UTC):

Тут многое легко исправить автоформатером, а читаемость вашего питон-кода будет важна в других квестах курса.

BrokenSolution.png