Войти Регистрация
Алгоритмы

135. Частые номера в журнале звонков

Лёгкая

Защитник от спама МТС смотрит журнал входящих звонков абонента за сутки: calls — номера в формате +79XXXXXXXXX, по одному на звонок.

Верните номера, которые звонили не меньше k раз, — по убыванию числа звонков, а при равенстве по возрастанию номера (как строки).

В работе: Номер, который за сутки набрал абонента 6 раз и ни разу не дождался ответа, уходит на проверку как возможный спам.

Пример 1

Ввод
calls = ["+79161234567", "+79035550011", "+79161234567", "+79260001122", "+79035550011", "+79161234567"]
k = 2
Вывод
["+79161234567", "+79035550011"]

+79161234567 — 3 звонка, +79035550011 — 2, третий номер звонил один раз.

Пример 2

Ввод
calls = []
k = 1
Вывод
[]

Звонков не было.

Ограничения

  • 0 ≤ длина calls ≤ 10⁵
  • 1 ≤ k ≤ 10⁵
  • Лимит — 2 с на тест (1500 мс).
Как вызывается ваш код Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула. print() и console.log() уходят в консоль.
def frequent_callers(calls, k):
Хеш-таблицаПодсчётСортировкацельO(n log n)

Источник: наша задача на данных МТС. Условие пересказано своими словами.