Ctrl K

Выровнять сдвигами начала

Лёгкая
Дан массив целых чисел values. За одну операцию можно выбрать любое начало массива (первые несколько элементов, хотя бы один) и прибавить ко всем его элементам одно и то же целое число k; k может быть отрицательным. Верните наименьшее число операций, после которых все элементы массива станут равны.
Пример 1
values=[5, 2, 2, 8] → 2

Прибавим 6 к первым трём: [11, 8, 8, 8]. Затем −3 к первому: [8, 8, 8, 8]. Две операции.

Пример 2
values=[-4, -4] → 0

Всё уже одинаково — операции не нужны.

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

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