1

我知道使用 Kadane 算法找到最大 2D 子矩阵的算法是 O(m^2*n),其中 m 是列,n 是行。但是,如果我们必须忽略整个矩阵中的 1 个元素(即我们将其值更改为 0,然后我们将获得最大子矩阵),是否有一种算法可以找到最大 2D 子矩阵?

我希望时间复杂度不要高很多,但我找不到有效的方法来做到这一点。似乎困难在于知道要忽略哪个元素,而无需逐个尝试所有元素,然后每次都计算最大子矩阵,我相信这将是 O(m^3*n^2) 。我什至不确定这是否可能,但我觉得可能有办法。

编辑:我看到这篇文章是关于一维数组的 O(n) 解决方案,但我认为将它推广到更高维数组并不是那么简单。不过,这可能是一个有效的提示。

4

0 回答 0