力扣127-单词接龙

参考文章
https://leetcode-cn.com/problems/word-ladder/solution/cpp-yi-ge-si-lu-de-zhuan-bian-cong-1156msjia-su-da/
双向BFS为什么比单项BFS快,这里我们把双向分为前向和后向,在最坏复杂度下,随着传递的推进,前向传递会越來越复杂,速度越来越慢,这时我们根据有用信息或者叫先验(有先验干嘛不用,这里指endword)来降低前向传递的复杂程度,所以可以缩短前向的匹配的时间,从而实现整体优化的效果。
举个不一定恰当的例子:2头狮子捕获一头羚羊,两个狮子分别在羚羊的前方和后方,前狮子先发起进攻,羚羊会往后跑,接着后狮子发起进攻,后狮子使得羚羊向后跑的范围缩小了,接着前狮子再发起进攻就可以在更小的范围捕捉羚羊(因为后狮子的功劳)。而如果没有后狮子呢?那在最复杂的情况下,狮子可能要把整个非洲大草原跑一个遍才能找到那个羚羊。

你可能感兴趣的:(data,structure)