Menu
CoddyTech

Meeting Rooms

Tu reçois une liste de réunions sous forme de deux tableaux : la réunion i se déroule de starts[i] à ends[i]. Une personne souhaite assister à toutes les réunions, donc aucune paire de réunions ne peut se chevaucher. Une réunion peut commencer au moment exact où une autre se termine. Renvoie true si la personne peut assister à toutes les réunions, et false sinon.

Fonction

canAttendMeetings(starts: integer-array, ends: integer-array) → boolean
startsinteger-array
l’heure de début de chaque réunion
endsinteger-array
l'heure de fin de chaque réunion, au même indice que son heure de début
Renvoieboolean
vrai si aucune réunion ne se chevauche, faux sinon

Contraintes

  • 1 ≤ starts.length == ends.length ≤ 5000
  • 0 ≤ starts[i] < ends[i] ≤ 106
  • Les réunions ne sont pas triées. Deux réunions peuvent être identiques.

Exemples

Entrée
starts = [9, 13, 10]ends = [10, 15, 12]
Sortie
true
Explication
Dans l’ordre chronologique, les réunions se déroulent de 9 à 10, de 10 à 12 et de 13 à 15. La deuxième commence au moment où la première se termine, ce qui est autorisé. La réponse est donc true.

lock icon+15 tests cachés à la soumission

challenge icon

Pour aller plus loin

Si les réunions sont réservées une par une, comment vérifier chaque nouvelle réservation par rapport au calendrier en O(log n), sans tout trier à nouveau ?

Réinitialiser le code
def canAttendMeetings(starts, ends):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Entrée

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

Attendu

true