IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:DFS

共 2 篇相关文章

IT 累计浏览 3,491

广度优先搜索解决“营救公主”问题

作者重新审视了“营救公主”这个经典迷宫搜索问题,指出之前采用深度优先搜索的方案存在缺陷,且未正确处理节点重复访问。这次他选择用广度优先搜索(BFS)重新实现,核心在于借助一个队列来逐层探索迷宫。 实现的关键有两点:一是用一个二维数组 `step` 记录从起点到每个节点的最小步数,每次从当前节点扩展邻居时累加距离;二是用 `'#'` 标记已访问过的节点,彻底避免了“回头路”和重复遍历。伪代码清晰地展示了状态转移逻辑——遇到墙则跳过,遇到通道则入队并更新距离,一旦遇到公主便结束搜索。 文章附带了完整的Java实现,通过 `Queue` 管理待探索节点,并在处理每个节点时计算步数。最终判断逻辑很直接:如果搜索到的公主所在位置距离小于给定时间 `T`,则营救成功。这种BFS解法自然保证了在网格中寻路的最短路径特性,对于此类问题比DFS更为直观和可靠。

IT 累计浏览 2,531

2011年度最变态的迷宫难题

这篇讲的是一个看似简单却堪称“变态”的数字迷宫谜题。谜题的规则很明确:从入口的“2011”出发,在迷宫中移动,最终需要以“2012”从出口离开。你可以选择任意路径,甚至可以绕圈或重复走过的路,唯一的限制是不能后退。 文章的核心在于呈现这个谜题设计的精巧与刁钻。作者直接将其定义为“年度最变态”,这种评价并非空穴来风——它迫使解题者跳出常规的线性思维。迷宫的挑战不在于物理路径的复杂,而在于如何通过一系列合法的移动,完成数字从“2011”到“2012”的“演变”。这需要对数字特性和移动规则进行深度推演。 作者的分享不仅在于提出一个难题,更在于展示这种智力游戏带来的极致思考体验。它提醒我们,有时最具挑战性的问题,其表象往往极其简洁。这个“变态”的迷宫,正是对思维韧性与灵活性的一次绝佳考验。