在2D整数数组中找到最高可能总和的最佳方法是什么?您无法重复列和行。例如
1 3 6
4 5 2
3 1 3
Max sum: 3+5+6=14
我知道有一种称为匈牙利算法的方法,但这似乎更适合寻找最小总和。
答案 0 :(得分:0)
是的,你可以使用匈牙利算法。
您需要修改搜索条件以查找最大总和而不是最小值。您还需要运行Bellman-Ford而不是Dijkstra作为搜索组件(因为Dijkstra无法计算最大总和路径)。
由于所选节点已使用其最大值进行配对,因此您无法进入不断增加的循环,因此任何更改都会产生较低的总和。如果已连接节点的损耗小于新连接节点的损耗,则算法将选择重新排列连接。你不必担心它。