Menu
CoddyTech

Meeting Rooms II

Вам дан список встреч в виде двух массивов: встреча i проходит с starts[i] до ends[i]. В одной комнате одновременно может проходить только одна встреча, и встреча может начаться в комнате в тот же момент, когда там заканчивается другая встреча.

Напишите функцию с именем minMeetingRooms, которая возвращает наименьшее количество комнат, в которых можно провести все встречи.

Функция

minMeetingRooms(starts: integer-array, ends: integer-array) → integer
startsinteger-array
время начала каждой встречи
endsinteger-array
время окончания каждой встречи, с тем же индексом, что и время начала
Возвращаетinteger
минимальное количество комнат, в которых можно провести все встречи

Ограничения

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

Примеры

Ввод
starts = [4, 1, 7, 2]ends = [8, 5, 9, 6]
Вывод
3
Пояснение
В момент времени 4 одновременно проходят встречи с 1 до 5, с 2 до 6 и с 4 до 8, поэтому тебе нужно как минимум 3 комнаты. Трёх достаточно: встреча с 7 до 9 занимает комнату, которая освобождается в 5.

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

challenge icon

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

Можешь также указать, в какую комнату назначено каждое собрание, используя не больше комнат, чем указано в ответе?

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

Случай 1

Случай 2

Случай 3

Ввод

starts = [4, 1, 7, 2]
ends = [8, 5, 9, 6]

Ожидается

3