Ctrl K

Полосатый шарф

Средняя
Шарф связан из полос, их цвета записаны в массиве colors (цвета — положительные целые числа). Шарф считается правильно полосатым, если в нём чередуются ровно два узора: - colors[i - 2] == colors[i] для всех 2 ≤ i < n; - colors[i - 1] != colors[i] для всех 1 ≤ i < n. За одну операцию можно перекрасить любую полосу в любой положительный цвет. Верните наименьшее число перекрашиваний, после которого шарф станет правильно полосатым.
Пример 1
colors=[4, 2, 4, 4, 1, 2] → 2

Оставим 4 на чётных местах и 2 на нечётных: перекрасить нужно полосу 3 (4 → 2) и полосу 4 (1 → 4). Итого 2.

Пример 2
colors=[7, 7, 7, 7] → 2

Соседние полосы не могут быть одного цвета, поэтому все нечётные полосы придётся перекрасить в другой цвет: 2 полосы.

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

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