arrays - 许多子数组求和查询

标签 arrays algorithm performance time-complexity sub-array

子数组问题:给定整数数组A(只有正数),是否存在任意长度的连续子数组,其和为S?对此的滑动窗口解决方案是 O(N)。

现在如果我们在静态数组上有很多这样的查询 S,我们可以进行预处理。我们可以计算 O(N^2) 中的所有子数组和并将它们存储在哈希表中。这也占用 O(N^2) 空间。然后我们可以在 O(1) 中处理查询,只需从哈希表中查找 S

我的问题是,是否有一些 O(N log N) 的预处理?即使这意味着将查询降低到 O(log N)。

最佳答案

is there some O(N log N) prepeprocessing?

在大小为 N 的数组中有 N2 个可能的子数组。您不能在小于 O(N2) 时间。

关于arrays - 许多子数组求和查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46386866/

相关文章:

performance - 快速在大型数字矩阵中找到第 n 个最大的产品

algorithm - 链表移除操作时间复杂度 O(n) vs O(1)

java - JUnit @RepeatedTest 用于并发执行

javascript - 如何仅在第一级将对象映射到数组。 JS

Java - 声明数组

string - 给定一个回文字符串,通过从中再删除一个字符,我们可以通过多少种方式将其转换为非回文字符串?

performance - 衡量网络浏览器的带宽

c# - 处理每个文件中包含数千个数据的大量文件的最快方法

c++将子类添加到基类数组?

python - 非零值的 Numpy 总和运行长度