问题是:
给定一个二维数组 [1:m,1:n],我们必须找到一个最大和子数组 [a:b,c:d] 其中 1<=a<=b<=m 和 1<=c<=d <=n 使得数组元素的总和为 (Summation)A[i,j] 其中 a<=i<=b 和 c<=j<=d 时间复杂度 O(mn min(m,n ) 对数最大值(m,n))
我想知道如何解决这个问题。我在想以下 -
1)我将在每一行上使用Kadane的算法,从2x2矩阵的中间到左右找到每个元素的累积和
2)根据升序对右侧的总和进行排序
3)将左侧的每个元素映射到右侧的最大元素并选择具有最大值的行..
4)也从2x2矩阵的中间到顶部和底部重复该过程(累积和)
5)重复步骤2和3相同
6)结合两种方法得到的最大值作为最大和子数组