leetcode1036. 逃离大迷宫

该博客探讨了LeetCode第1036题‘逃离大迷宫’,主要利用宽度优先搜索(BFS)算法进行求解。题目要求在106x106的网格中,避开封锁方格从起点到终点移动。如果能通过一系列移动到达目标,则返回真,否则返回假。文章指出,当无法到达目标时,可能是障碍物包围了起点或终点,通过BFS枚举方格可以计算出最大包围面积,此面积即为等腰三角形的一条边,两边为障碍物边界。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      题目链接: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就会收到障碍包围的影响,枚举的方格数就是包围的面积,我们只需要确定包围的最大面积即可。最大面积就是障碍物围成一条线,以另外两边作为等腰三角形的两边。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值