Контест Middle Структуры, методы и интерфейсы обновлено
Очередь с приоритетом через container/heap на Go
Условие
Реализуйте очередь задач с приоритетом. Операции:
push <имя> <приоритет>: добавить задачу;pop: вывести имя задачи с наибольшим приоритетом и удалить её; при равных приоритетах первой выходит добавленная раньше. Если очередь пуста, вывестиempty.
Ввод: q (1 ≤ q ≤ 3000), затем q операций. Приоритеты целые.
Вывод: результат каждого pop.
Пример
7
push fix 5
push deploy 9
push docs 1
pop
push hotfix 9
pop
pop
deploy
hotfix
fix
Как подойти
Тип-слайс с методами Len/Less/Swap/Push/Pop, ключ (−priority, seq).
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
LRU-кеш на Go: map и двусвязный список
Следующий вопрос
Площади фигур через интерфейс Shape на Go
Ещё по теме «Структуры, методы и интерфейсы»
- Сортировка структур по нескольким ключам на Go
- Что выведет Go: встраивание и вызов метода
- Что выведет Go: интерфейс хранит копию значения
- Что выведет Go: method value и defer копируют ресивер
- Что выведет Go: nil-указатель в интерфейсе error
- Что выведет Go: ресиверы по значению и указателю
- Что выведет Go: сравнение структур и указателей
- Что выведет Go: type switch