Bellman_ford 队列优化算法(又名SPFA)
题目链接:卡码网:94. 城市间货物运输 I
思路:具体参考“代码随想录——Bellman_ford 队列优化算法(又名SPFA)”,主要的思想是在Bellman_ford算法中因为要每条边都要松弛(判断是否可以松弛),但是改进队列优化使用了邻接表先查询到当前点邻接的是什么点然后放入队列遍历松弛,节省遍历所有路径判断是否可以松弛这个步骤,节省时间。但是是有弊端的,一方面队列读取存储耗时,另一方面如果路径过多其实理论时间上无限接近于“Bellman_ford ”算法
bellman_ford之判断负权回路
题目链接:卡码网:95. 城市间货物运输 II
思路:判断是够有负权回路有两种方法,第一种以为我们知道如果没有负权回路的话Bellman_ford原始方法不断松弛即使n次以上minDist也不会变化,因为路径已经是最小的了,但是负权回路会使得minDist不停变小。第二种方法是Bellman_ford 队列优化算法下,已知每个店最多会被加入队列n-1次,但是超过n-1那必然是负权回路。(具体参考“代码随想录——bellman_ford之判断负权回路”)。
bellman_ford之单源有限最短路
题目链接:卡码网:96. 城市间货物运输 III思路:k个城市就是松弛k+1次,讲解了录入路径的顺序对之后的遍历也会有影响所以不能完全相信k+1次松弛,所以每次松弛需要保存上一次松弛的结果进行对比。(具体参考“
代码随想录——bellman_ford之单源有限最短路”)