Ctrl K

Значения дальше всех от медианы

Средняя
Датчик прислал серию показаний readings. Аналитику нужны самые нетипичные из них — те, что дальше всего от медианы. Медиана здесь — элемент с индексом (n - 1) // 2 в отсортированном по возрастанию массиве, где n — длина readings (при чётной длине это левый из двух средних). Показание a нетипичнее показания b, если |a - median| > |b - median|. Если расстояния равны, нетипичнее то, у которого значение больше. Верните count самых нетипичных показаний в любом порядке. Повторяющиеся значения считаются отдельными показаниями.
Пример 1
readings=[4, 9, -2, 7, 5], count=2 → [-2, 9]

По возрастанию: [-2, 4, 5, 7, 9], медиана — 5. Дальше всех от неё -2 (на 7) и 9 (на 4).

Пример 2
readings=[10, 2, 6, 8], count=3 → [10, 2, 8]

По возрастанию: [2, 6, 8, 10], медиана — элемент с индексом (4 - 1) // 2 = 1, то есть 6. Значения 2 и 10 одинаково далеки от неё (на 4), обе берём; третьим идёт 8 (на 2).

Пример 3
readings=[3, 1, 5], count=1 → [5]

Медиана — 3, и 1, и 5 удалены от неё на 2. При равенстве выигрывает большее значение — 5.

Ограничения
  • 1 ≤ len(readings) ≤ 10⁵
  • -10⁵ ≤ readings[i] ≤ 10⁵
  • 1 ≤ count ≤ len(readings)
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиТройки с нулевой суммой СредняяСумма тройки ближе всего к цели СредняяЧетыре числа с заданной суммой СредняяФлажки трёх цветов СредняяСтудии для записи Средняя
загружаем Python…
Вход
readings=[4, 9, -2, 7, 5], count=2
Ожидается
[-2, 9]

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