【发布时间】:2017-11-06 16:41:26
【问题描述】:
给你一个正整数数组 A 和一些查询。
在每个查询中,都会给您正整数 X、Y、l 和 r。
对于每个查询,你要在数组 A 的 [l : r] 范围内找到大于 X 且小于 Y 的最大元素。如果不存在这样的元素,则输出 -1。
我有一个类似问题的解释,你要在一个数组范围内找到小于 K 的最大元素。但在这里我无法应用该逻辑。
预期时间为 O(log n) 或多对数时间。
【问题讨论】:
-
你有什么问题?
-
'预计时间是 O(log n)' 嗯,预计时间是什么? ...准备元数据,执行单个查询,执行所有查询?和什么对数? ...到数组的长度,到数组中不同数字的数量,所以是数组长度和查询数的总和?
标签: arrays algorithm logarithm range-query