Ctrl K

Сузить разброс тремя правками

Средняя
Датчик выдал ряд показаний readings. Вы можете исправить не больше трёх из них: каждое исправление заменяет одно показание на любое целое число. Разброс ряда — это разность между наибольшим и наименьшим значением. Верните наименьший разброс, которого можно добиться.
Пример 1
readings=[12, 40, 7, 9, 100, 11] → 3

Исправим 7, 40 и 100, например, на 10. Останутся значения от 9 до 12, разброс 3.

Пример 2
readings=[5, -5, 0] → 0

Значений всего три — все можно сделать одинаковыми.

Пример 3
readings=[1, 2, 3, 4, 5, 6, 7] → 3

Как ни распределяй три правки, четыре соседних значения останутся, и разброс будет не меньше 3.

Ограничения
  • 1 ≤ len(readings) ≤ 10⁵
  • -10⁹ ≤ readings[i] ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамое большое число из кусков СредняяСтудии для записи СредняяНизко — высоко — низко СредняяСтрого низко — высоко СредняяОтменить как можно меньше встреч Средняя
загружаем Python…
Вход
readings=[12, 40, 7, 9, 100, 11]
Ожидается
3

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