n(logn)算法问题

时间:2018-03-15 03:51:31

标签: sorting time-complexity

所以我刚刚读完时间复杂度,我遇到了一些我无法解决的问题。 "你得到一个n个整数的数组,并且必须回答一系列n 查询,每个形式:“数组中有多少元素之间有值 L和R?“,其中L和R是整数。设计一个O(n log n)算法 回答所有这些问题。"

感谢。

1 个答案:

答案 0 :(得分:0)

  1. 您可以使用segment-tree
  2. 或平衡树,使avl并在每个节点中存储其左右儿童。在每个查询中,找到L中的RO(logn)并计算中间节点。施工需要O(n logn)。同样针对n次查询,您可以访问O(n logn)
  3. 或者BIT,其方法与第二种想法相同。