【发布时间】:2012-07-13 16:05:17
【问题描述】:
我有一个事件数据集(开始日期、结束日期、位置)。这些活动在国内进行,我需要弄清楚结束后哪个活动应该去哪里。
示例:
- [1/7, 6/7, Toronto](7 月 1 日开始,7 月 6 日结束)
- [2/7, 4/7, 蒙特利尔]
- [4/7, 11/7, 渥太华]
- [17/7, 22/7, 温哥华]
..etc(数据集大约有 100 个条目,因此性能不是问题)
在此示例中,事件 1 可以移动并执行事件 4,因为它在 7 月 6 日结束,而事件 4 在 17 日开始。 (假设当天过境)
所有找不到合适匹配的事件都将存储在报告中,供某人手动匹配。
此优化代码将在 javascript 中完成。
我的第一个想法是拥有 2 个具有相同数据的数组。第一个数组按开始日期排序,第二个数组按结束日期排序。然后浏览结束日期列表并尝试为它找到一个合适的开始日期,然后从数组中删除这些条目并继续这样直到不再匹配为止。
有人对如何解决这个问题有更好的想法吗?如果您需要更多详细信息,请告诉我!
【问题讨论】:
-
听起来像一个典型的间隔调度问题,并且似乎您已经在使用“默认”贪婪算法方法,这可以看作是最佳的,除了您实际上不需要第一个排序数组
标签: javascript algorithm date optimization data-structures