0

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

我们从中找到非空的最大和最小子数组(子数组只有连续的元素)。

我的主张是这些子数组要么是不相交的(没有公共元素),要么一个完全包含另一个。不可能有像部分交叉这样的东西。

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

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

最大子数组是从第 8 到第 11 个元素,总和为 43。最小子数组是从第 2 到第 7 个元素,总和为 -50。

4

1 回答 1

1

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

1 -1 1 -1

那么最大子数组的和为 1,最小子数组的和为 -1。但是,最大值和最小值都出现两次,并且只有一种选择,它们确实相交。就目前而言,这种说法是错误的。

但是,如果您限制为最短的子数组,我认为这种说法是正确的。或者,如果您说任何重叠的总和必须为零,那么这是真的。

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

于 2013-06-08T13:03:09.970 回答