J'ai eu une interview aujourd'hui et j'ai été invitée à vérifier si deux conflits de conflits entre eux ou non. Chaque réunion a commencé l'heure et la fin de la fin.
J'ai essayé de répondre à la question mais pas si spécifique ..Pon que quelqu'un jette une idée? devrait retourner vrai si le conflit est là et faux s'il n'y a pas de conflit. p> E.g vrai si:
(S2, E2) = 9, 11 P> p> (S1, E1) = 7,10 P>
(S2, E2) = 8, 9 P> (S1, E1) = 8,11 P>
(S2, E2) = 9, 11
et ainsi sur p> p>
p>
(S1, E1) = 8,10 P>
5 Réponses :
Dans le cas simple de deux intervalles, je pense que cela fonctionnera (pseudocode non testé):
Alors que je suis d'accord, la solution de Lasse est plus élégante, votre solution est plus facilement comprise dans l'IMHO
Les réunions se chevauchent si et uniquement si max (S1, S2)
(s, e) code> sont ouverts et impliquent (à tort ou à tort) qu'un vide em> réunion
s = e code> ne peut pas avoir de chevauchement avec une autre réunion. P>
Ceci est une algèbre d'intervalle de base, voir Ma réponse ici pour plus de détails , mais Le code ressemblerait à ceci:
bool IsConflict(Datetime s1, Datetime e1, Datetime s2, Datetime e2) { return (s1 < e2) && (e1 > s2); }
Dommage que c'est la communauté wiki, je pense que vous méritez deux upvotes par utilisateur pour cette réponse liée.
Non, je l'ai explicitement fabriqué pour éviter cela, la question est en libération d'un duplicata, mais suffisamment différente de celui-ci, mais ma réponse ne serait donc pas, d'où cw.
La complexité de l'algorithme suivant est O (nlogn)
Voici donc la réponse. Je m'excuse; Ce n'est pas les lignes de code les plus lisibles. P> le code (pseudo): strong> p>
Je vois Nombre de questions spécifiques à la langue qui aurait des réponses utiles, mais rien de général ...
Il n'y a vraiment rien de plus que cela semble - juste quelques
si code> s pour voir si les dates se chevauchent. Ces
si code> S pourraient être rationalisés et réduits en nombre si, par exemple, les dates sont triées d'une certaine manière (par exemple en fonction de leur départ, et après cela - à leur fin).
Ceci est juste une variante de ma réponse ici: Stackoverflow.com/questions/4718004/tricky-interview-Questio N < / a>