【发布时间】:2009-03-17 08:08:39
【问题描述】:
假设我有一个区间(或范围)列表(例如 10-15、5-7、9-12..)。问题是找到重叠的范围子集。当然我可以使用Interval tree。
我遇到的实际问题是有多个范围。最好用一个例子来解释:
- 10-15、5-7、9-12
- 1-2、3-6、14-15
- 3-5、9-15、10-15
在上述情况下,第二个范围的 (1) 和 (2) 之间以及第三个范围的 (3) 和 (1)、(2) 之间存在重叠。
基本上,我需要找到所有项列表之间的重叠。
也许我可以使用 3 个独立的区间树来找出答案。有一个更好的方法吗?
【问题讨论】:
-
你应该考虑你想要/需要什么。您想要所有 3 个重叠的范围还是其中任何两个重叠的所有范围?后者会导致很多结果,尤其是超过 3 个项目。
标签: algorithm binary-tree interval-tree