Ctrl K

Больше трети голосов

Средняя
В массиве votes записаны номера кандидатов, за которых голосовали, — по одному числу на бюллетень. Всего бюллетеней n. Верните всех кандидатов, получивших больше ⌊n / 3⌋ голосов. Порядок в ответе не важен. Попробуйте решить за линейное время и O(1) дополнительной памяти.
Пример 1
votes=[4, 7, 4, 2, 7, 4] → [4]

Голосов 6, порог — больше 2. У 4 три голоса, у 7 два, у 2 один: подходит только 4.

Пример 2
votes=[-5, 8] → [-5, 8]

Порог — больше 0 голосов, так что проходят оба.

Пример 3
votes=[1, 2, 3, 1, 2, 3] → []

У каждого ровно треть голосов, а нужно строго больше — список пуст.

Ограничения
  • 1 ≤ len(votes) ≤ 5·10⁴
  • -10⁹ ≤ votes[i] ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамые частые значения СредняяЗадания с перерывом на остывание СредняяСамые частые запросы СредняяТройки с точной суммой СредняяМетки вразнобой Средняя
загружаем Python…
Вход
votes=[4, 7, 4, 2, 7, 4]
Ожидается
[4]

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