Ctrl K

Две правки ради разброса

Средняя
Дан массив показаний readings. Для него считаются две величины: - **нижняя** — наименьшая абсолютная разность между двумя элементами массива (с разными индексами); - **верхняя** — наибольшая такая разность. **Оценка** массива — сумма нижней и верхней величин. Можно заменить ровно два элемента массива на любые целые числа. Верните наименьшую оценку, которой можно добиться.
Пример 1
readings=[3, 20, 9, 11, 1] → 8

Меняем 1 и 20 на 9: получаем [3, 9, 9, 11, 9]. Наименьшая разница 0, наибольшая 11 − 3 = 8, оценка 8.

Пример 2
readings=[7, 50, 2] → 0

Меняем 50 и 2 на 7 — все значения равны, оценка 0.

Пример 3
readings=[1, 2, 3, 100, 200] → 2

Выгоднее поправить два самых больших значения: остаются 1, 2, 3 и оценка 3 − 1 = 2.

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

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