Menu
CoddyTech

Meeting Rooms

Du erhältst eine Liste von Besprechungen in Form von zwei Arrays: Besprechung i dauert von starts[i] bis ends[i]. Eine Person möchte an allen Besprechungen teilnehmen, daher dürfen sich keine zwei Besprechungen überschneiden. Eine Besprechung darf genau zu dem Zeitpunkt beginnen, an dem eine andere endet. Gib true zurück, wenn die Person an jeder Besprechung teilnehmen kann, andernfalls false.

Funktion

canAttendMeetings(starts: integer-array, ends: integer-array) → boolean
startsinteger-array
die Startzeit jedes Treffens
endsinteger-array
die Endzeit jedes Meetings am selben Index wie seine Startzeit
Gibt zurückboolean
true, wenn sich keine zwei Besprechungen überschneiden, andernfalls false

Einschränkungen

  • 1 ≤ starts.length == ends.length ≤ 5000
  • 0 ≤ starts[i] < ends[i] ≤ 106
  • Die Besprechungen sind nicht sortiert. Zwei Besprechungen können identisch sein.

Beispiele

Eingabe
starts = [9, 13, 10]ends = [10, 15, 12]
Ausgabe
true
Erklärung
In zeitlicher Reihenfolge finden die Besprechungen von 9 bis 10, von 10 bis 12 und von 13 bis 15 Uhr statt. Die zweite beginnt genau in dem Moment, in dem die erste endet. Das ist zulässig, daher lautet die Antwort true.

lock icon+15 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Wenn Besprechungen einzeln gebucht werden: Wie würdest du jede neue Buchung in O(log n) mit dem Zeitplan abgleichen, ohne alles erneut zu sortieren?

Code zurücksetzen
def canAttendMeetings(starts, ends):
    # Schreibe hier den Code
Testfälle

Fall 1

Fall 2

Eingabe

starts = [9, 13, 10]
ends = [10, 15, 12]

Erwartet

true