【发布时间】:2020-10-22 11:25:25
【问题描述】:
对于著名的 Activity Selection 问题,有一个经典的贪婪方法解决方案,您可以看到 here。
但是现在,我想到了另一种解决方案。让我们看看这个 sudo 代码:
while(!empty(S))
{
Select interval I $ \in $ S that overlap least number of other intervals;
Add I to Result;
Remove all Interval from S that overlap with I;
}
你可以猜到 S 是我们的输入集,I 是 S 的成员,Result 是我们的输出集。
如果我们不关心时间复杂度,这项工作是否有效并且总是结果是最大集?如果没有,当我们没有有效的输出时?有例子吗?
谢谢!
【问题讨论】:
标签: python c++ algorithm greedy