Ctrl K

Одинаковые подряд после удалений

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

Удаляем две тройки (позиции 3 и 4) — получаем [4, 2, 4, 4, 4]. Подряд стоят три четвёрки. Четыре четвёрки подряд потребовали бы удалить ещё и 2, а это уже три удаления.

Пример 2
values=[1, 2, 3], removals=0 → 1

Удалять ничего нельзя, все числа разные — самый длинный отрезок из одинаковых имеет длину 1.

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

Убираем обе единицы и получаем [2, 2, 2].

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

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