You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Foo.bar可破墙迷宫A*搜索隐藏测试用例失败求助

排查方向
  • 修复重复计算问题:你当前的shortest_path函数连续两次调用了A*求解逻辑,大尺寸迷宫下会直接翻倍运行耗时,极容易触发Foo.bar的时间限制导致用例判定失败。直接把运行结果存到临时变量再判断即可,参考修改:
def shortest_path(maze):
    path = astar_with_1_breakable_wall(maze)
    return len(path) if path else -1
  • 优化开放列表的操作效率:你当前每次取f值最小节点、删除节点都要遍历整个开放列表,复杂度是O(n),迷宫尺寸稍大就会卡顿。可以改用Python内置的heapq模块实现优先队列,把操作复杂度降到O(logn),大幅提升运行速度。
  • 补充小尺寸边界用例测试:你本地全量遍历测试只覆盖了边长≥6的迷宫,遗漏了边界场景,建议补充测试:
    • 1x1网格[[0]],预期返回1
    • 2x2网格[[0,1],[1,0]],预期返回3
    • 单行长条形迷宫[[0,1,1,0]],预期返回4
  • 优化启发式函数:你用的欧氏距离取上界虽然满足A的可采纳性要求,但四方向移动的网格场景下,曼哈顿距离是更紧的下界,可以减少A遍历的节点数,进一步提升效率,修改参考:
self.h = abs(end.pos[0] - self.pos[0]) + abs(end.pos[1] - self.pos[1])

内容的提问来源于stack exchange,提问作者altruios

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 10:45:07