【发布时间】:2014-07-01 06:25:18
【问题描述】:
这是一道面试题
有一家航空公司希望为其所有航班提供新的更新 参加者通过会议。每个第i个空姐从开始就有一个工作时间 时间
i (si)到结束时间i (ei)。设计一个最小化数量的算法 公司必须举行的会议。
我的方法是选择结束时间最短的空乘人员。然后删除所有开始时间
这是正确的方法吗?如果是,如何证明其正确性。
我认为复杂度是 O (n log n),因为我将首先按结束时间的升序对列表进行排序,然后遍历列表一次。
【问题讨论】:
-
请在问题上更具体一点;所以任何会议都可以到达在会议举行时正在工作的所有服务员?但是,对于您描述的算法,您对运行时复杂度的估计是正确的。
-
如果您选择开始时间最早的空乘人员,并在此之前举行会议,您可以通过一次会议为他们提供服务。
-
@LasseV.Karlsen:请澄清。你刚刚反转了扫描的方向吗?这也可以,但不是您描述的方式。
-
我想我误解了“工作时间”的意思,因为他们是空乘人员,他们不是在工作时间在飞行吗?我认为会议需要在飞行之外举行。