波波老师,请问这个return提前为什么会快这么多呢
来源:6-5 BFS和图的最短路径 Perfect Squares
夜的钢琴曲5
2019-10-24
就是最后一种优化方法中把
if(num == 0)
return step;
去掉,然后在循环中加入
if (a == 0)
return step+1;
就会从60ms快到17ms呢,这个判断放在for循环外面比放在里面应该只少了一次的判断,但为什么会快这么多呢,请问这背后是什么原理。
写回答
1回答
-
因为判断 if(a == 0) ,是在第一次见到目标的时候就返回了;
但是,判断 if(num == 0),其实是第二次见到目标的时候,第一次见到目标,先将它放入队列了;第二次取出来的时候,发现它是 0,返回。
在第一次见到它,把它放入队列以后,我们还可能需要从队列中取出很多元素去做判断,然后才轮到第二次将它从队列中取出来。
继续加油!:)
012019-10-25
相似问题
逆波兰问题
回答 1
波波老师求教word search2
回答 2