给出整数的重叠间隔的列表。我需要找到 kth 个最大元素。
示例:
List { (3,4), (2,8), (4,8), (1,3), (7,9) }
此间隔表示数字为
[3, 4], [2, 3, 4, 5, 6, 7, 8], [4, 5, 6, 7, 8], [1, 2, 3], and [7, 8, 9].
如果我们按降序合并并对其进行排序,则会得到
9, 8, 8, 8, 7, 7, 7, 6, 6, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 1
现在列表中的第4大数字是8。
任何人都可以解释一个效率(我们不必生成列表)算法来找到仅给出内部列表的第k个元素吗?
答案 0 :(得分:0)
k = 1
和L = 9
。(7,9)
间隔标记为已访问,并检查是否有其他间隔包含9 a >= 9 && b <= '
。在您的情况下,只有9个。L -= L
)并清除访问间隔的历史记录。并重复检查间隔。k
并将间隔标记为已访问。一旦它等于kth
,当前的最大数字L
就是您的答案。