【发布时间】:2011-06-21 14:29:31
【问题描述】:
我今天有一个面试,被要求检查两次会议是否相互冲突。每个会议都有开始时间和结束时间。
我试图回答这个问题,但不是那么具体..有人可以提出一些想法吗?
bool IsConflict(Datetime s1, Datetime e1, Datetime s2, Datetime e2)
如果存在冲突,则应返回 true,如果不存在冲突,则应返回 false。
例如
如果满足以下条件则为真:
(s1, e1)= 8,10
(s2, e2) = 9, 11
(s1, e1)= 7,10
(s2, e2) = 8, 9
(s1, e1)= 8,11
(s2, e2) = 9, 11 等等
【问题讨论】:
-
我看到 many language specific questions 会有有用的答案,但没有一般性......
-
它看起来真的没有什么其他东西了 - 只是几个
ifs 看看日期是否重叠。这些ifs 可以精简并减少数量,例如,如果日期以某种方式排序(例如基于它们的开始,然后是它们的结束)。 -
面试官可能想看看你是如何解决问题的(我会像 Lasse 在他的链接答案中所做的那样画一张图片)
标签: algorithm datetime compare