Diese Herausforderung wurde stark von diesem Stapelüberlauf-Beitrag inspiriert .
Herausforderung
Bestimmen Sie anhand einer Reihe von Kunden, wann sie einen Raum betreten und wann sie ihn verlassen, die Zeitspanne (n), in der der Raum eine maximale Anzahl von Personen hat. Die Zeitauflösung sollte auf die Minute genau sein.
Wenn es zum Beispiel sind drei Clients 8 - 10
, 9 - 11
, 10 - 12
, dann die richtige Antwort wäre 9 - 11
; Während dieses Zeitraums befinden sich zwei Kunden im Raum, was der größtmögliche ist.
Eingang
Die Eingabe ist eine Liste von Paaren in irgendeiner Form. Dies kann entweder eine Liste mit 2 Tupeln, eine Liste mit gerader Länge mit verschachtelten Elementen usw. oder ein beliebiges vernünftiges Eingabeformat sein. Die Zeiten können in jedem vernünftigen Format angegeben werden, entweder in 12- oder 24-Stunden-Zeit. Sie können die Zeit auch als Anzahl der Minuten nach Mitternacht eingeben.
Ausgabe
Die Ausgabe sollte eine Liste von Paaren in irgendeiner Form sein, aber die Ausgabe ist strenger. Die Ausgabe kann keine flache Liste sein, sondern muss eine Liste von 2 Tupeln oder eine Liste von Listen usw. sein. Die Zeiten können in jedem vernünftigen Format entweder in 12- oder 24-Stunden-Zeit ausgegeben werden. Sie können die Zeit auch als Anzahl der Minuten nach Mitternacht ausgeben.
Beispiele
input
output
INPUT
08:00 - 10:00
09:00 - 11:00
10:00 - 12:00
OUTPUT
09:00 - 11:00
INPUT
08:20 - 09:20
09:00 - 09:10
08:00 - 09:30
08:50 - 10:40
OUTPUT
09:00 - 09:10
INPUT
08:00 - 10:00
09:00 - 10:00
09:30 - 11:00
OUTPUT
09:30 - 10:00 # The output is not always in the input list
INPUT
00:00 - 02:00
01:00 - 03:00
04:00 - 06:00
05:00 - 07:00
OUTPUT # This is the expected output for when there are multiple time ranges with the same "business".
01:00 - 02:00
05:00 - 06:00
Sie können davon ausgehen, dass das zweite Mal in einem Paar immer nach dem ersten Mal liegt. Zeitbereiche laufen nicht über Mitternacht.
09:00 - 10:00, 10:00 - 11:00
eine gültige Ausgabe für den ersten Testfall?