【问题标题】:Finding a submatrix with the maximum possible sum in O(n^2)在 O(n^2) 中找到具有最大可能和的子矩阵
【发布时间】:2011-03-08 03:50:53
【问题描述】:

我正在尝试用 Java 编写一个程序,当给定一个 MxN 矩阵时,它将找到具有最大数字总和的(连续)子矩阵。然后程序需要返回子矩阵的左上角坐标和右下角坐标。矩阵可以包含负数,矩阵和子矩阵都不需要是方阵。

我看到这里讨论过这个问题:Getting the submatrix with maximum sum? 并且那里的解决方案似乎是 O(n^3)。我的一个朋友说他们曾经设法在 O(n^2) 中解决了这个问题。还建议here.可以吗?

是否有任何可用的代码以最有效的方式解决此问题?

【问题讨论】:

  • 您使用 O(n^2) 解决方案链接到的第二个 SO 问题讨论了一个比您的问题更简单的问题。

标签: algorithm submatrix


【解决方案1】:

您(很可能)无法在O(n^2) 中解决您的问题,至少不知道这样的算法。最佳解决方案具有亚三次的复杂性,但实施起来非常困难,而且在实践中可能更慢。你可以阅读一篇关于它的论文here

使用的常用算法是您找到的问题中引用的O(n^3)

【讨论】:

  • @IVIad 你是说如果我找到二次解,我可以发表论文吗?
【解决方案2】:

(S)他是你的朋友.. 所以问问他/她,也和我们分享:)

【讨论】:

    猜你喜欢
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 2011-04-18
    • 2013-09-02
    • 2015-05-09
    • 2014-09-21
    相关资源
    最近更新 更多