Ctrl K

Сдвиг отрезка ради совпадений

Средняя
Дан массив целых чисел values и число wanted. Ровно один раз можно выбрать непрерывный отрезок массива (хотя бы из одного элемента) и любое целое число x — в том числе отрицательное или ноль — и прибавить x к каждому элементу отрезка. Верните наибольшее количество элементов, равных wanted, которое может оказаться в массиве после такой операции. Обратите внимание: элементы, уже равные wanted, внутри отрезка тоже сдвинутся — при ненулевом x они перестанут совпадать.
Пример 1
values=[4, 7, 7, 4, 7, 2], wanted=4 → 4

Сдвигаем отрезок [7, 7, 4, 7] (индексы 1–4) на −3: семёрки становятся четвёрками, а четвёрка внутри — единицей. Получаем [4, 4, 4, 1, 4, 2], четвёрок четыре.

Пример 2
values=[3, 3, 3], wanted=3 → 3

Все элементы уже равны 3. Сдвигаем любой отрезок на 0 — ничего не меняется.

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

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