最大和最小子阵列的交点

时间:2013-06-08 12:46:52

标签: arrays array-algorithms sub-array

假设我们有一些整数数组(可以是+ ve和-ve)。

我们发现非空最大和最小子阵列(子阵列只有连续元素)。

我的主张是这些子阵列要么是不相交的(没有共同的元素),要么是完全包含另一个。没有像部分交叉的东西。

这种说法是真的吗?如果没有,你能举一个反例吗?

示例案例:13 -3 -25 20 -3 -16 -23 18 20 -7 12 -5 -22 15 -4 7

max子阵列是从第8到第11个元素,其总和为43。 min子阵列是第2到第7个元素,总和为-50。

1 个答案:

答案 0 :(得分:1)

如果考虑以下长度为4的整数数组

1 -1 1 -1

然后max子阵列的总和为1,min子阵列的总和为-1。然而,最大值和最小值都出现两次,并且只有一个选择,它们相交。因此,声称是错误的。

但是,如果你限制到最短的子阵列,我认为这个说法是正确的。或者,如果你说任何重叠必须有一个零,那么它就是真的。

最简单的证明方法是注意重叠的总和必须为零。如果重叠的总和不为零,则从最小子阵列的最大子阵列丢弃重叠区域将产生更高的最大值或更小的最小值。这与最大和最小子阵列是他们声称的那样的断言相矛盾,因此重叠的总和不能为非零。