这是daily leetcode系列第60天啦,今天这是一道宽度优先搜索的的题目。
60天以来,不断挑战自己突破自己。所以今天也尝试使用了新技术。
今天使用的是双向宽度优先搜索,这个技术其实是竞赛级别的技术,一般算法高手要求就是掌握单向的宽度优先搜索即可。
我先将起点放入left,将终点放入right。
哪边少就搜哪边,将搜索的在bank中的合法结果放入cache,搜索完成后将那一边和cache交换,清空cache。
有一些高手的双向宽度优先搜索是分为搜索边和结果边,哪一边少哪一边就被换去搜索边。这种做法也是可行的,代码的确更加简短。
我的代码保持了高效率,并且左搜和右搜两段代码有着特别华丽的对称性。
很快就要到2的6次方天了