最大总和/面积子矩阵

时间:2012-10-26 19:33:10

标签: algorithm matrix

输入:nxn矩阵的正数/负数和k。

输出:子元素,其元素的最大总和除以其至少包含k个元素的元素数。

对于这个问题,有没有比O(n ^ 4)好的算法?

2 个答案:

答案 0 :(得分:1)

基于FFT的分治方法解决这个问题:

https://github.com/thearn/maximum-submatrix-sum

它不如Kadane那样高效(O(N ^ 3)对O(N ^ 3 log N)),但确实对解决方案构建有不同的看法。

答案 1 :(得分:0)

存在用于在n×n矩阵中找到最大和子矩阵(即,子矩阵)的O(n ^ 3)2-d kadane算法。 (您可以在SO上找到关于它的帖子,或在线阅读)。一旦你理解了算法是如何工作的,如果你能解决在一维数组中找到长度至少为m的最大平均子区间的问题,很明显你可以得到一个O(n ^ 3)时间解决方案来解决你的问题。在O(n)时间内的n个数。这确实是可能的,见文件cs.slu.edu/~goldwasser/publications/DensityPreprint.pdf

因此,您的问题有一个O(n ^ 3)时间解决方案。