我正在开发一个有点关注以下内容的程序:
实线上的单位长度闭合间隔是区间[x,1 + x]。对于给定的输入集
X = {x1,x2,...,Xn},x1< x2< ... xn,我如何确定包含所有给定点的单位长度闭合区间的最小集合以及我如何计算时间复杂度。
我不需要代码但是正确设置我的程序的算法会很好
由于
答案 0 :(得分:1)
您的积分按递增顺序排序。我们可以通过贪婪的方法解决这个问题。使第一个间隔从x1开始。然后将第二个间隔开始设置为第一个间隔中的第一个点。等等。
答案 1 :(得分:0)
由于它是一个集合覆盖问题的实例,多项式时间算法不太可能超过贪婪的解决方案。因此,您可以尝试放置覆盖大量未覆盖点的单位间隔。对于间隔的位置,通过将其与X中的某个数据点对齐,不会丢失。
答案 2 :(得分:0)
贪婪: 时间复杂度为O(n),最大值。 像x1< ...