Выбор ответа Junior Задачи на Kotlin обновлено

Куча в Kotlin

Вопрос

Как в Kotlin получить max-кучу целых чисел?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: PriorityQueue<Int(compareByDescending { it }). java.util.PriorityQueue по умолчанию min-куча, для max нужен обратный компаратор: compareByDescending { it } или Collections.reverseOrder().

Варианты ответа

  1. PriorityQueue<Int>(), она по умолчанию max
  2. ArrayDeque<Int>() с сортировкой после каждой вставки
  3. sortedSetOf<Int>() и брать last()
  4. PriorityQueue<Int>(compareByDescending { it })правильный ответ

Разбор

java.util.PriorityQueue по умолчанию min-куча, для max нужен обратный компаратор: compareByDescending { it } или Collections.reverseOrder(). Сортировать деку после каждой вставки слишком медленно. TreeSet (sortedSetOf) умеет достать максимум, но выкидывает дубликаты, поэтому как куча не подходит.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.