Menu
CoddyTech

Meeting Rooms

Тебе дан список встреч в виде двух массивов: встреча i длится с starts[i] до ends[i]. Один человек хочет посетить все встречи, поэтому никакие две встречи не должны пересекаться. Встреча может начаться ровно в тот момент, когда заканчивается другая. Верни true, если человек может посетить каждую встречу, и false в противном случае.

Функция

canAttendMeetings(starts: integer-array, ends: integer-array) → boolean
startsinteger-array
время начала каждой встречи
endsinteger-array
время окончания каждой встречи с тем же индексом, что и время её начала
Возвращаетboolean
true, если никакие два собрания не пересекаются по времени, иначе false

Ограничения

  • 1 ≤ starts.length == ends.length ≤ 5000
  • 0 ≤ starts[i] < ends[i] ≤ 106
  • Встречи не отсортированы. Две встречи могут быть одинаковыми.

Примеры

Ввод
starts = [9, 13, 10]ends = [10, 15, 12]
Вывод
true
Пояснение
В хронологическом порядке встречи проходят с 9 до 10, с 10 до 12 и с 13 до 15. Вторая начинается в тот же момент, когда заканчивается первая, а это допустимо, поэтому ответ — true.
challenge icon

Дополнительный вопрос

Если встречи бронируются по одной, как проверять каждую новую бронь по расписанию за O(log n), не сортируя всё заново?

Сбросить код
def canAttendMeetings(starts, ends):
    # Напишите код здесь

Тест #1

Тест #2

Аргументы

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

Ожидаемый вывод

true