Ctrl K

Медиана разнообразия отрезков

Сложная
Дан массив values. Для каждого непрерывного отрезка values[i..j] (0 ≤ i ≤ j < len(values)) посчитайте, сколько в нём различных чисел. Выпишите все эти счётчики и отсортируйте по неубыванию. Верните медиану получившегося списка. Если список чётной длины и средних элементов два, возьмите меньший из них.
Пример 1
values=[7, 7, 2] → 1

Шесть отрезков дают числа различных значений 1, 1, 1, 1, 2, 2. Средних два — третье и четвёртое, оба равны 1.

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

Отсортированные счётчики: 1, 1, 1, 1, 2, 2, 2, 2, 3, 3. Средние — пятый и шестой, оба равны 2.

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

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