dis数组含义:dis[i]表示源点到点i的最短路径 第二题可以使用bellman-ford算法先求的dis,然后对dis数组元素进行判断,来推断是否可以从这个点到达所有的点,如果可以到达;则对权值取相反数,然后按照第一步的思路求最短路径,此时的最短路径的相反数就是原题的最大路径? 想问一下这个思路是否是正确的? 如果源输入当中本身就存在负的权值这个结论应该也是成立的吧 我贴一下求单源最短路径的bellman ford算法的goalng实现 func findShortestPath( n int , m int , graph [][]int ) int { // 由于我们求得是 1->n 的最短路径 dis := make([]int, n) // 我们初始化 dis的 dis[0] = 0 // write code here for i:=0; i<n; i++{ dis[i] = 1000*(n-1) } dis[0] = 0 // 然后我们开始v-1次松弛操作 for i:=0; i< n-1; i++{ for j:=0; j<m; j++{ if dis[graph[j][0]-1]+graph[j][2] < dis[graph[j][1]-1] { dis[graph[j][1]-1] = dis[graph[j][0]-1]+graph[j][2] } } } // after before operations return dis[n-1] } 改成最大路径 修改部分1: if dis[graph[j][0]-1]+graph[j][2]*(-1) < dis[graph[j][1]-1] dis[graph[j][1]-1] = dis[graph[j][0]-1]+graph[j][2]*(-1) 修改部分2:return dis[n-1]*(-1)
点赞 评论

相关推荐

迷茫的大四🐶:我不许你接受,我不许你启动咏鹅
点赞 评论 收藏
分享
09-20 22:39
中南大学
故事和酒66:意思就是用了AI辅助也不一定做得出来,还是有区分度,不然他不会让你用的
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务