一、算法分析
求有障碍情况下,A到B的最小转弯数,显然如果是最短路,那就当然是一道模板题了,但是本题要求是求最小的转弯次数,这就要用到flood fill的思想了
以样例来说
. x A
. . .
B x .
直接观察得出,最后的路径显然是从A开始,向下走一格,再走到最左边,再向下走一格,总转弯次数是2.
当用flood fill算法的时候,对于第一次拓展,就可以向下直接走到底(也就是走两步),因而可能在A下面的格子转弯,也可能不转。同理,到了A下面格子之后,一次拓展就可能直接走到B的上面那个格子。(从代码上看,会先经过B上面的格子,再经过最中间的格子)这样就可以不在最中间那个格子的地方转弯了。最后求出转弯两次,即样例输出。