【发布时间】:2012-09-12 13:28:18
【问题描述】:
我有一堆可能重叠的(日期)间隔。间隔来自不同的来源。我想“展平”这个“时间线”,然后找到没有间隔的所有间隔。
如果你看:http://www.dgp.toronto.edu/people/JamesStewart/378notes/22intervals/ 到“一个更复杂的例子”部分。因此,我想找到没有作曲家在世的区间。
我该怎么做?你将如何在 PHP 中实现这样的事情? PHP是否也有一些简单的建树功能?
谢谢!
编辑 我的输入是一些数组(2、3 或 4),每个数组都包含开始和停止日期,如下所示:
$myarray1[0]['start']['date'] = 'somedate'
$myarray1[0]['stop']['date'] = 'somedate'
$myarray1[1]['start']['date'] = 'somedate'
$myarray1[1]['stop']['date'] = 'somedate'
$myarray1[2]['start']['date'] = 'somedate'
$myarray1[2]['stop']['date'] = 'somedate'
myarray2、myarray3 等也是如此
【问题讨论】:
-
顺便说一句:Franz Shubert 的生日是错误的。应该是 1797,而不是 1779。
-
可以看下面stackoverflow.com/q/748516/1088243了解算法。您不需要构建一棵树,而只需要一个哈希,它用较小的整数对较小的日期进行哈希处理。