【题意说明】
求任意两点之间的之间的最短距离。
【问题分析】
我被这个问题给困扰了好久,总是把它看成与“City Driving”相同的问题来处理,很是纠结!经高人提醒才有所醒悟,在此写下,希望对读者有所帮助!
显然本题要是用Flord算法来计算任意两点之间的最短距离,时间复杂度为o(n^3),肯定会超时!若是用dijkstra算法,求一个点就需要o(n^2),要求那么多个案例,那么多个点显然时间复杂度比o(n^3)也少不了多少!那怎么办??
本题关键是在使用dijkstra算法来求最短距离的要加一个处理:找到目标点即退出!因为最先到目标点的一定是最短的!
明白了这点这个问题求没什么难度了!它就是dijkstra的应用,而且每次找过后,把最短的距离用一个二维数组保存下来!
当然,这种算法还不足以解决“City Driving”这个问题!
若有哪位高手有更好的算法,请留言!在此感谢在先!