将线放在一条直线上并计算空度

时间:2018-11-25 21:04:01

标签: python

我有数字段。例如:

segmetns = [[10,25],[75,270],[11,32],[50,111]]

我的任务是计算没有被线段占据的点数。

在当前情况下32-50没有分段。

我想用字典来实现它。取段上的最小值和最大值(这很容易获得),如果键值在范围内,则替换字典中的值。但是我将不得不遍历每个部分的整个长度。由于细分可能大于1 * 10 ^ 12,因此无法及时获利。

也许可以在不更改键范围的情况下替换键范围。

1 个答案:

答案 0 :(得分:0)

看一下关于SO的讨论: python union of multiple ranges

此问题讨论有关查找重叠间隔的并集的问题。您的问题基本相同。找到重叠间隔的并集后,就可以轻松计算出范围内未覆盖的间隔。