bookings[i] = [start, end] занимает отрезок времени от start до end включительно. Брони могут накладываться друг на друга.
Склейте все пересекающиеся брони: если два отрезка имеют хотя бы одну общую точку (в том числе если один заканчивается ровно там, где начинается другой), они объединяются в один. Верните получившийся список непересекающихся отрезков, отсортированный по возрастанию начала. Вместе эти отрезки должны покрывать ровно то же время, что и исходные брони.bookings=[[9, 12], [1, 4], [3, 5], [12, 14]] → [[1, 5], [9, 14]]
[1, 4] и [3, 5] пересекаются и дают [1, 5]. [9, 12] и [12, 14] касаются в точке 12, поэтому тоже сливаются в [9, 14]. Результат отсортирован по началу.
bookings=[[2, 10], [3, 4], [6, 7]] → [[2, 10]]
Обе короткие брони целиком лежат внутри [2, 10].
bookings=[[5, 6], [0, 2]] → [[0, 2], [5, 6]]
Брони не пересекаются, остаются как есть, но идут по возрастанию начала.
bookings ≤ 10⁴bookings[i] состоит ровно из двух чиселstart ≤ end ≤ 10⁴bookings=[[9, 12], [1, 4], [3, 5], [12, 14]]
[[1, 5], [9, 14]]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 94 теста на сервере, включая скрытые.