【发布时间】:2015-09-26 06:32:35
【问题描述】:
给定一个包含 N 个正整数 A1,A2,...,An 的数组。您必须回答 Q 问题。每个查询由两个整数 L 和 K 组成。对于每个查询,当所有这些元素按照其索引的递增顺序列出时,我必须告诉数组中大于或等于 L 的第 K 个元素。
示例 A = 22,44,12,16,14,88,25,49
查询 1:L = 3 K = 4 由于所有元素都大于 3。所以我们列出整个数组,即 22、44、12、16、14、88、25、49。这些元素中的第 4 个元素是 16
查询 2:L = 19 K = 5 列出元素 22、44、88、25、49。其中第 5 个元素是 49。
我所做的:对于每个查询,遍历整个数组并检查大于或等于 L 的第 K 个元素。复杂度:O(Q*N)
我需要什么:O(Q*logN) 复杂度。
约束:1
【问题讨论】: