求矩阵中不同行和列的元素总和的最大值
我有一个 nxm 矩阵,我需要找到不同行和列中其值之和的最大值。
例如,考虑以下矩阵:
m1 m2 m3
n1 1 2 3
n2 4 5 6
n3 7 8 9
n4 10 11 12
最大值将为 12+8+4 = 24
请注意,找到最大值并消除属于该列或行的所有值并不是一个好的解决方案,因为它并不适用于所有情况。
上述例外情况如下:
m1 m2
n1 17 1
n2 18 15
如果找到 18 并删除 17 和 15,则总和将为 18+1 = 19。而 17+15 = 32 的值更高。
对这个问题的算法有什么想法吗?
I have a nxm matrix and I need to find the maximum of sum of its values in distinct rows and columns.
For example considering the following Matrix:
m1 m2 m3
n1 1 2 3
n2 4 5 6
n3 7 8 9
n4 10 11 12
The max will be 12+8+4 = 24
Note that finding the max and eliminating all values belonging to that column or row is not a good solution as it doesn't work for all cases.
The exception for above will be the following:
m1 m2
n1 17 1
n2 18 15
If you find 18 and remove 17 and 15, the sum will be 18+1 = 19. while 17+15 = 32 has a higher value.
Any idea about the algorithm for this question?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
解决方案是使用匈牙利算法。这是一个复杂的算法。 youtube 上有一个非常好的讲座:
http://www.youtube.com/watch?v =BUGIhEecipE
The solution is to use Hungarian Algorithm. It's a complicated algorithm. There's a very good lecture on that on youtube:
http://www.youtube.com/watch?v=BUGIhEecipE
这类似于 N 皇后问题,我们必须将 N 皇后放置在 N*N 矩阵中,使得 2 皇后不应该位于同一列或同一行。
This is similar to the N Queen Problem where we have to place N queen in N*N matrix such that no 2 queen should be in the same column or same row.