多少个间隔包含另一个间隔?

时间:2015-05-01 14:52:48

标签: algorithm optimization intervals

给定N个间隔,包括起点和终点。存在多少对这些间隔,使得一个间隔包含另一个间隔?

例如,如果给定的间隔是:
{2,3},{1,5},{0,10},{2,4}
然后我们有5对:
{0,10}包含{2,3}
{0,10}包含{2,4}
{0,10}包含{1,5}
{1,5}包含{2,4}
{1,5}包含{2,3}

我们只对这些对的数量感兴趣。你能帮我找到至少一个O(N log N)解决方案(O(N^2)是微不足道的吗?)

注意:时间间隔以{startpoint,endpoint}的形式给出,其中起点和终点最多可达10 ^ 18。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

startpoint排序,使用mergesort派生的O(n log n)-time算法计算endpoint列表中的反转次数。