Ctrl K

Убрать половину списка

Средняя
Дан список целых чисел items чётной длины. Можно выбрать несколько значений и вычеркнуть из списка все их вхождения. Какое наименьшее число значений нужно выбрать, чтобы вычеркнуть не меньше половины элементов списка?
Пример 1
items=[4, 4, 4, 9, 9, 1, 1, 2] → 2

Из 8 элементов нужно убрать хотя бы 4. Одного значения мало (самое частое, 4, встречается 3 раза), а 4 и 9 вместе убирают 5 элементов. Ответ 2.

Пример 2
items=[5, 6, 7, 8] → 2

Все значения разные, каждое убирает один элемент, а убрать нужно два.

Пример 3
items=[3, 3, 3, 3, 1, 2] → 1
Ограничения
  • 2 ≤ len(items) ≤ 10⁵
  • len(items) чётно
  • 1 ≤ items[i] ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЗадания с перерывом на остывание СредняяМетки вразнобой СредняяСамый узкий отрезок для всех списков СложнаяРазобрать стопки поровну ЛёгкаяВитрина: выручка плюс разнообразие Сложная
загружаем Python…
Вход
items=[4, 4, 4, 9, 9, 1, 1, 2]
Ожидается
2

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 64 теста на сервере, включая скрытые.