我一直在思考并寻找这个问题的解决方案,在wikipedia
上找到了解决方案建议找到i的完成时间< =开始时间的活动。 但是,请考虑这个例子:
起动时:[1,2,3,4,5]
结束时:[3,4,5,6,7]
各自重量:[13,5,2,4,1]
对于这个例子,当我参加活动时:(4-6),我将有2个完成时间小于4的活动,所以,不应该只通过二分搜索搜索数字,不应该返回一个数组,然后从中获取最大值。
如果我误解了这个概念,请纠正我。
答案 0 :(得分:0)
根据文章opt[i] = MAX(opt[i-1], opt[t] + w(i))
,即opt[i]
会考虑在i
之前结束的所有活动。这就是为什么不需要迭代所有可能的选项。