当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,此时在循环中直接返回,否则是不会直接返回的:)


是用一个具体的数字,跟进算法里,调试跟踪一下试试看?:)


加油!:)

0
2
liuyubobobo
回复
英宁
继续加油!:)
2018-08-31
共2条回复

玩转算法面试-- Leetcode真题分门别类讲解

课程配套大量BAT面试真题,高频算法题解析,强化训练

7408 学习 · 1150 问题

查看课程