我正在尝试用Java实现匈牙利语算法。我有一个NxN成本矩阵。我正在逐步关注this指南,并已达到第9步 -
“通过选择一组零来选择匹配,以便每行或 列只有一个选中。“
我已经有了0的矩阵。 我试图解决这个问题,唯一对我有用的是蛮力方法。
我还想过选择我遇到的第一个0,删除那个列&划线和重复;但这种方法不起作用。
有诀窍或方法吗?什么东西不是太复杂?任何建议都会受到赞赏。
由于
答案 0 :(得分:3)
匈牙利人的答案::)
0
元素数。 (称之为row[]
和column[]
)column[3]
(如果在row
中找到最小值,则同样适用,仅交换行和列)如果您有多个具有相同值的值,请选择任何。 / LI>
0
元素,将其标记。如果您有多个,请选择任意。column[3]
设为0(下次不选择)column[3]
中的所有元素,如果找到0
元素,则将相应的row[i]
值减少1