题目链接:1036. 逃离大迷宫
题意:
在一个 106 x 106 的网格中,每个网格上方格的坐标为
(x, y)
。现在从源方格
source = [sx, sy]
开始出发,意图赶往目标方格target = [tx, ty]
。数组blocked
是封锁的方格列表,其中每个blocked[i] = [xi, yi]
表示坐标为(xi, yi)
的方格是禁止通行的。每次移动,都可以走到网格中在四个方向上相邻的方格,只要该方格 不 在给出的封锁列表
blocked
上。同时,不允许走出网格。只有在可以通过一系列的移动从源方格
source
到达目标方格target
时才返回true
。否则,返回false
。
方法: 宽度搜索
不连通的情况下,说明障碍包围了source或者target。从source或者target开始枚举每一个方格,source或者target就会收到障碍包围的影响,枚举的方格数就是包围的面积,我们只需要确定包围的最大面积即可。最大面积就是障碍物围成一条线,以另外两边作为等腰三角形的两边。