✅ Решение задачи 253Time: O(n log(n))
Space: O(n)
💡 Идея🟦Сначала отсортируем все интервалы встреч по времени начала, что позволит в правильном порядке отслеживать, какие комнаты освобождаются, а какие ещё заняты
🟦Далее для текущей встречи стоит необходимость выбора комнаты, поэтому полезно знать самое раннее завершение какой-либо встречи, для чего используем
PriorityQueue, в которую последовательно добавляем времена окончания всех встреч
🟦Если текущая встреча начинается после завершения самой ранней встречи (
pq.peek()), значит, комната освобождается, и можно снова её использовать, а время окончания этой встречи из очереди удалить
🟦В результате размер очереди указывает на максимальное количество одновременно активных встреч, что и есть минимально необходимое число переговорных комнат
👩💻 Java Algo |
#solution253