浅析:最小基因变化

433. 最小基因变化

 

本篇文章简单分析一下题目 最小基因变化,这个题目是一个 BFS 的模版题,和题目 打开转盘锁 很相似,详情可见 BFS 算法框架

下面从两个不同的角度分析本题:「单向 BFS」「双向 BFS」

单向 BFS

我们以start作为第 0 层,bank中在start基础上改变一位基因作为第 1 层,依次类推,直到寻找到目标基因

同时,我们需要记录bank中基因的访问情况

下面给出对应的代码:

双向 BFS

这个题目也符合「双向 BFS」的适用情况,即终点是明确的

这里需要注意的一点,选择恰当标记的时机。不可以在加入队列的时候标记,不然这样一个基因只能加入一端的队列中,这样肯定就无法在一端队列中找到相同的基因 🧬,因为双向队列中的基因各不相同

下面给出错误的代码,加以警示!!