Menu
CoddyTech

Meeting Rooms

Ricevi un elenco di riunioni sotto forma di due array: la riunione i si svolge da starts[i] a ends[i]. Una persona vuole partecipare a tutte, quindi nessuna coppia di riunioni può sovrapporsi. Una riunione può iniziare esattamente nel momento in cui ne termina un'altra. Restituisci true se la persona può partecipare a tutte le riunioni e false altrimenti.

Funzione

canAttendMeetings(starts: integer-array, ends: integer-array) → boolean
startsinteger-array
l'orario di inizio di ogni riunione
endsinteger-array
l'ora di fine di ogni riunione, allo stesso indice del relativo inizio
Restituisceboolean
true se nessuna coppia di riunioni si sovrappone, false altrimenti

Vincoli

  • 1 ≤ starts.length == ends.length ≤ 5000
  • 0 ≤ starts[i] < ends[i] ≤ 106
  • Le riunioni non sono ordinate. Due riunioni possono essere identiche.

Esempi

Input
starts = [9, 13, 10]ends = [10, 15, 12]
Output
true
Spiegazione
In ordine cronologico, le riunioni si svolgono dalle 9 alle 10, dalle 10 alle 12 e dalle 13 alle 15. La seconda inizia nel momento in cui termina la prima, il che è consentito, quindi la risposta è true.

lock icon+15 test nascosti all’invio

challenge icon

Per approfondire

Se le riunioni vengono prenotate una alla volta, come controlleresti ogni nuova prenotazione confrontandola con l’orario in O(log n), senza ordinare di nuovo tutto?

Ripristina il codice
def canAttendMeetings(starts, ends):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Input

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

Atteso

true