如何找到最大交叉点数的区间

时间:2014-01-23 00:45:00

标签: algorithm oop data-structures

如何找到最大交叉点数的区间?如果(1,3),(2,9),(4,7),(5,8),输出应为(2,9)。

我认为一种常见的方法是创建一个数组= {(a1,start),(b1,end),(a2,start),(b2,end),...,(an,start),( bn,end)}(第一个坐标是数字,第二个坐标是标签)。根据字典顺序对数组进行排序,其中start<结束(第一个坐标是一个数字)。初始化计数= 0(计数将标记当前重叠间隔的数量)。在看到开始坐标时增加计数,在看到结束坐标时减少计数。

当我们创建数组时,我不明白,我们基本上将开始时间和结束时间从每个间隔分开。因此,每个开始时间和结束时间将失去对它们所属的间隔的识别。当我们遍历数组时,如果我们只是增加/减少计数而不知道每个坐标对应于哪个区间就没有意义。如果我们使用散列映射并将每个坐标映射到它们的间隔,则可能存在重复的开始时间和结束时间的问题。

我们应该如何解决这个问题?感谢。

0 个答案:

没有答案