Ctrl K

Суммарный разброс отрезков

Средняя
Дан массив целых чисел values. Разброс отрезка — разность между его наибольшим и наименьшим элементами. Отрезок — непустой кусок подряд идущих элементов массива. Верните сумму разбросов всех отрезков массива. Перебор за O(n²) укладывается в ограничения; попробуйте также найти решение за O(n).
Пример 1
values=[4, 1, 3] → 8

Разброс отрезков: [4, 1] — 3, [1, 3] — 2, [4, 1, 3] — 3, у одиночных — 0. Итого 8.

Пример 2
values=[-2, -2, 5] → 14

[-2, -2] — 0, [-2, 5] — 7, [-2, -2, 5] — 7. Итого 14.

Пример 3
values=[6] → 0

Единственный отрезок из одного элемента, его разброс 0.

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

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