0

问题是:

给定一个二维数组 [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)结合两种方法得到的最大值作为最大和子数组

4

0 回答 0