【发布时间】:2016-11-18 10:39:41
【问题描述】:
我有一个应用程序,其中有一系列不重叠的固定宽度间隔,每个间隔都有一个给定的键。每个区间具有相同的宽度,并且可能存在连续的区间。本质上,我想以最小化单独间隔的数量的方式对间隔和键进行分组。这可以通过合并具有相同键的连续间隔或寻找匹配的间隔并将它们组合成具有多个键的单个间隔来完成。我目前的算法尝试了上述两种方法,并查看哪种方法产生的间隔数最少,但我觉得必须有一种更聪明的方法来解决这个问题。任何建议将不胜感激!
例如:
|-----| |-----|键为 k1 的区间(连续)
|-----|与键 k2 的间隔
|-----|与键 k3 的间隔
在这个问题中,键为 k1 的区间可以合并为一个连续的区间,从而得到 3 个而不是 4 个总区间。或者每个键 k1、k2 和 k3 的第一个区间可以与键 k1、k2 和 k3 组合成一个区间,从而得到一个区间加上 k1 中剩余的第二个区间。
最坏的情况是 70,000 个间隔。
【问题讨论】:
-
欢迎来到 Stackoverflow。可以举个例子吗?
-
@Kaidul Islam 完成。希望很清楚:)
-
最大间隔数是多少?
-
@Kaidul Islam 添加了最坏情况问题的大小
-
我们可以同时使用两种策略 -
merging contiguous intervals with the same key or looking for matching intervals and combining them into single intervals还是分别使用两种策略来看看哪个最好?
标签: algorithm optimization dynamic-programming