我试图解决的问题在数轴上有一个区间列表,每个区间都有一个预定义的分数。我需要返回最大可能的总分。
问题是间隔重叠,重叠间隔中我只能使用一个。这是一个例子。
Intervals - Score
0- 5 - 15
4- 9 - 18
10-15 - 12
8-21 - 19
25-30 - 25
这里,区间 0-5、4-9 和 8-21 重叠。
区间 10-15 和 8-21 也重叠。
最大总和为 55 (18+12+25)。
这里需要注意的是,我们选择了第一批重叠区间的区间 4-9,即使它没有三个中的最高分。
这是因为选择区间 8-21 会阻止我们以后使用区间 10-15,从而减少总和(在这种情况下,总和将是 19+25=44)。
我正在寻找这个问题的 O(nlogn) 或 O(n) 解决方案。我认为可以使用动态编程,但我可能错了。有人可以提出一个可以在这里解决问题的解决方案/算法吗?
编辑:间隔没有特别的顺序。