arrays - 确定是否存在长度 > 1 且均值为整数的连续子数组

标签 arrays algorithm data-structures

给定一个未排序的整数数组。

我正在努力想出一个有效的解决方案(比 O(n2) 更好)但我能想出的最好的是 O(n2) 解决方案:

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 的子数组很有用。

最佳答案

这可能是一个棘手的问题 :) 两个奇数和为偶数,两个偶数和为偶数。唯一不包含长度为 2 且可被 2 整除的连续子数组的数据集必须交替 [..., odd, even, odd, even, ...]。但是随后需要进一步限制数据集,以防止长度为 4 的子数组被 4 整除,因为每隔一个偶数都可以被 4 整除。

收到这样一个列表的概率非常小,并且随着列表变大而继续降低(而且,它适合于数字模式的子集;那些可能会让人感兴趣吗?),这意味着除非有人煞费苦心地工作要创建一些(如果不是全部的话)大多数现实世界情况会找到一个解决方案,其中包含一个大小为 4 的滑动窗口,该窗口还检查交替奇偶校验。

关于arrays - 确定是否存在长度 > 1 且均值为整数的连续子数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52266341/

相关文章:

algorithm - tcl 中 lsearch 的默认算法以及改进其运行时间的方法?

java - 数组不同部分的两个最大值的最大绝对差?

data-structures - 函数的哈希码在原子内部发生变化......为什么会发生这种情况?

c# - 计算字符串中的箭头

php - 将字符串拆分为字母数组 - 双字符字母 PHP

php - Where 子句中的数组

c++ - 该算法获取所有字梯的时间复杂度是多少?

java - LinkedList 中的新元素添加到哪里?在头部之后还是在尾部?

algorithm - 如何找到非二叉树中节点的深度/级别?

arrays - ruby 数组 : opposite of `&` for an array