【发布时间】:2015-05-19 13:03:14
【问题描述】:
我很久以前在准备面试时遇到了这个问题,并认为这是一个有趣的问题需要解决。问题是这样的: 找到一组区间的覆盖范围 例如 - 给定 [1,4), [-2,3), [9,10) :输出应为 7(区间集涵盖 -2,-1,0,1,2,3,9) .
我最初的方法是迭代一组区间;将每个间隔中的数字添加到排序链接列表中。如果排序列表中已经存在任何数字,请跳过它。我相信这需要 O(N^2) 时间并消耗 O(N) 空间,所以我们可能会做得更好。
或者,我们可以使用Interval BST。但是,这似乎主要用于确定是否与给定间隔(需要 O(lgn))重叠。找到它的覆盖范围似乎又需要 O(n^2) 。我们能比 O(n^2) 做得更好吗?
【问题讨论】: