【问题标题】:How to get the number of collisions in overlapping sets?如何获得重叠集中的碰撞次数?
【发布时间】:2017-05-16 04:11:31
【问题描述】:

对于我正在做的一个项目,我有一个格式为

的集合列表

[ [start, end] ]

例如

[{1, 3} {2, 4} {5, 9} {6, 8} {7, 8}]

数组是有序的。

我想找出重叠碰撞的数量。例如来自示例数据集。

我想要的结果如下。

 Interval | Collisions
----------------------
 {7,8}    | 3
 {2,3}    | 2
 {6,7}    | 2
 {1,2}    | 1
 {3,4}    | 1
 {5,6}    | 1
 {8,9}    | 1

实现它的理想方法是什么?

【问题讨论】:

标签: algorithm


【解决方案1】:

您可以将每个列表元素转换为两个 元素,一个仅代表开始,一个仅代表结束。然后,对结果进行排序,给你这个:

  • 从 1 开始
  • 从 2 开始
  • 结束于 3
  • 结束于 4
  • 从 5 点开始
  • 从 6 点开始
  • 从 7 点开始
  • 8 点结束
  • 8 点结束
  • 9 点结束

现在您可以遍历列表,跟踪您在每个点输入和退出的集合数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多