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.

lock icon+15 скрытых тестов при отправке

challenge icon

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

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

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

Случай 1

Случай 2

Ввод

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

Ожидается

true