给出一个未排序的整数数组。
我正在尝试提出一种有效的解决方案(优于O(n 2 )),但是我能想到的最好的方案是O(n 2 )解决方案:
for i from 0 to size of list:
sum = list[i]
for j from i + 1 to size of list:
sum += list[j]
if sum % (j - i + 1) == 0:
return true
return false
我已经阅读了有关滑动窗口技术的内容,但是看起来对于特定长度 k 的子数组很有用。
答案 0 :(得分:0)
这可能是一个棘手的问题:)两个奇数总和为偶数,两个偶数总和为偶数。唯一不包括长度为2且也可以被2整除的连续子数组的数据集将不得不交替使用[..., odd, even, odd, even, ...]
。但是随后就需要进一步限制数据集,以防止长度为4的子数组被4整除,因为每个其他偶数都可以被4整除。
接收到这样一个列表的可能性非常小,并且随着列表变大而不断降低(更重要的是,它很容易成为数字模式的子集;这些可能引起人们的兴趣吗?),这意味着除非有人辛勤工作要创建一些(即使不是全部)现实世界的情况,也会找到一个滑动窗口大小为4的解决方案,该窗口还检查交替的奇偶校验。