假设我有一组不相交的实际间隔,例如{[0,1), [1, 5], [7.5, 9.2]}
。我想将此信息存储在支持恒定时间以下操作的数据结构中:
find(x):
的x
,它应该返回包含x
的间隔的索引(如果没有这样的间隔,则返回-1)。例如find(0.5) -> 0
,find(8.1) -> 2
,find(6) -> -1
。是否存在这样的数据结构?如果是这样,它有名字吗?
我能想到的最好的办法是对时间间隔进行排序,并通过二进制搜索实现find
,这对于k个时间间隔来说需要O(log k)。