使用除法和征服

时间:2015-05-09 06:46:37

标签: algorithm computer-science divide-and-conquer arrays kadanes-algorithm

问题是:

在给定2D阵列[1:m,1:n]的情况下,我们必须找到最大和子阵列[a:b,c:d],其中1 <= a&lt; = b&lt; = m且1&lt; = c&lt; ; = d&lt; = n,使得数组的元素之和为(求和)A [i,j]其中a&lt; = i <= b且c <= j <= d时间复杂度O(mn min( m,n)log max(m,n))

我想知道如何解决问题。我正在考虑以下内容 -

1)我将在每一行上使用Kadane的算法来查找从2x2矩阵的中间到右边和左边的每个元素的累积和

2)根据增加的顺序对右侧的总和进行排序

3)将左侧的每个元素映射到右侧的max元素,并选择具有最大值的行。

4)从2x2矩阵的中间向顶部和底部重复该过程(累积和)

5)对同一个

重复步骤2和3

6)合并两种方法获得的最大值,并将其作为最大和子阵列

0 个答案:

没有答案