【发布时间】:2015-10-06 09:22:05
【问题描述】:
我有一个大小为 N 的数组,我给出了 2 种类型的查询
1 L R 反转 [L,R] 中的所有元素
2 L 查找索引 L 处的值。
Example: [1,2,3,4,5]
1 2 4 -> [1,4,3,2,5]
1 4 5 -> [1,4,3,5,2]
2 5 -> 2
Q-查询次数
Q
直截了当的解决方案将是 O(Q*N) 这将是相当慢的,如何使它更快可以使用分段树?
【问题讨论】:
-
是的。段树是解决问题的方法。
-
@vish4071 到底怎么样?你能发表一个答案吗? :)
-
@vish4071 你能解释一下如何在这个中使用段树
-
@svs 任何帮助!!!关于线段树的使用
-
无论如何,您将在类型 1(Q1) 的查询和类型 2(Q2) 运行时的查询之间进行权衡。在朴素的解决方案中,Q1 将采用 O(n),而 Q2 将采用 O(1)。您究竟想最小化什么?
标签: algorithm data-structures tree