Besprechungskonfliktalgorithmen

8

Ich hatte heute ein Interview und wurde gebeten zu prüfen, ob zwei Besprechungskonflikte miteinander bestehen oder nicht. Jedes Meeting hat Startzeit und Endzeit. Ich habe versucht, die Frage zu beantworten, aber nicht so spezifisch ... kann jemand eine Idee werfen?

%Vor%

sollte true zurückgeben, wenn Konflikt vorhanden ist, und false, wenn kein Konflikt auftritt.

Zum Beispiel

Wahr wenn:
(s1, e1) = 8,10

(s2, e2) = 9, 11

(s1, e1) = 7,10

(s2, e2) = 8, 9

(s1, e1) = 8,11

(s2, e2) = 9, 11 und so weiter

    
sam_33 04.02.2011, 20:02
quelle

5 Antworten

15

Dies ist grundlegende Intervall-Algebra, siehe meine Antwort hier für weitere Details , aber Der Code würde so aussehen:

%Vor%

Ich gehe davon aus, dass zwei Meetings, bei denen man anfängt, wo das andere endet, nicht in Konflikt stehen.

    
Lasse V. Karlsen 23.05.2017 11:46
quelle
2

Im einfachen Fall von zwei Intervallen denke ich, dass das funktioniert (ungeprüfter Pseudocode voraus):

%Vor%     
Bill the Lizard 04.02.2011 20:13
quelle
1

Die Meetings überschneiden sich genau dann, wenn max(s1, s2) < min(e1, e2) . Dieser schnittbasierte Ansatz geht davon aus, dass die Intervalle (s, e) offen sind, und impliziert (zu Recht oder zu Unrecht), dass eine leere Besprechung s = e sich nicht mit einer anderen Besprechung überschneiden kann.

    
antonakos 04.02.2011 20:13
quelle
1

Die Komplexität des folgenden Algorithmus ist O (nlogn)

%Vor%     
Nikhil K R 03.05.2011 17:55
quelle
0

Der Plan Es gibt drei Fälle, in denen nach diesem Problem gesucht werden muss.

  • Fall 1: Liegt s1 innerhalb des Intervalls [s2, e2]     (s1 & gt; = s2) & amp; & amp; (s1 & lt; = e2)
  • Fall 2: Liegt e1 innerhalb des Intervalls [s2, e2]     (e1 & gt; = s2) & amp; & amp; (e2 & lt; = e2))
  • Fall 3: Liegt der Punkt (s2, e2) innerhalb von [s1, e1]     (s1 & lt; = s2) & amp; & amp; (e1 & gt; = e2)

Also hier ist die Antwort. Ich entschuldige mich; Es ist nicht die lesbarste Codezeile.

Der Code (Pseudo):

%Vor%     
Keith Holliday 12.12.2013 04:41
quelle

Tags und Links