Контест Middle Протоколы, POP и дженерики обновлено
Задача на Swift: k-й по величине в потоке через кучу
Условие
Числа приходят потоком. После каждого выведите k-е по величине среди пришедших (с учётом повторов) или none, если чисел пока меньше k.
Первая строка: k n (1 ≤ k ≤ n ≤ 10⁴). Вторая: n целых чисел по модулю до 10⁹.
В стандартной библиотеке Swift нет кучи: реализуйте дженерик Heap<T: Comparable>.
Пример
3 6
4 5 8 2 3 10
none
none
4
4
4
5
Как подойти
Min-куча из k элементов.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Термины по теме
Ещё по теме «Протоколы, POP и дженерики»
- Протокол делегата и weak
- Протокол с associatedtype как тип параметра
- Условное соответствие протоколу
- Метод из расширения протокола: какая реализация вызовется
- Ограничение дженерика Comparable
- Как ускорить вызов методов класса
- Что такое associatedtype
- Виды диспетчеризации в Swift