每个元素小于某个特定数字的子数组的总和
Posted
技术标签:
【中文标题】每个元素小于某个特定数字的子数组的总和【英文标题】:sum of a subarray where each element is less than some specific number 【发布时间】:2017-07-14 17:43:56 【问题描述】:我有一个未排序的 n 个元素的数组,现在查询 q 以 l,r,t 的形式出现,其中 l
n
q
ai(数组元素)
t
解决这个问题最有效的数据结构是什么?
【问题讨论】:
到目前为止你做了什么? 可能是std:: vector
。
尝试使用归并排序树,但复杂度仍然很高
francois,对不起,应该是 t
How to effectively answer range queries in an array of integers?的可能重复
【参考方案1】:
最有效的数据结构是稀疏表(O(nlogn) 构建时间和 O(1) 查询时间)或分段树(O(n) 构建时间和 O(logn) 查询时间)。
【讨论】:
以上是关于每个元素小于某个特定数字的子数组的总和的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 最大子阵列总和。在具有最大总和的数组(包含至少一个数字)中查找连续的子数组。