当num==0的时候就直接返回了,怎么看起来是算出来的一个就返回了,并不是算出来step最小的时候返回呢?是我漏了啥逻辑吗?
来源:6-5 BFS和图的最短路径 Perfect Squares
英宁
2018-08-30
写回答
1回答
-
liuyubobobo
2018-08-30
最开始放进队列里的pair是(n, 0),代表(num, step)第一个元素代表数字,第二个元素代表经过多少步。而退出的条件是当num == 0的时候,而不是step == 0的时候。所以除非传算法的n == 0,此时在循环中直接返回,否则是不会直接返回的:)
是用一个具体的数字,跟进算法里,调试跟踪一下试试看?:)
加油!:)
022018-08-31
相似问题