Ctrl K

Короткий отрезок с повтором

Средняя
По ленте конвейера едут посылки, метка i-й посылки — labels[i]. Оператор снимает с ленты несколько посылок **подряд** и хочет, чтобы среди снятых нашлись хотя бы две с одинаковой меткой. Верните наименьшее число подряд идущих посылок, которое для этого нужно снять. Если на ленте нет двух посылок с одинаковой меткой, верните -1.
Пример 1
labels=[5, 2, 8, 2, 5, 8] → 3

Отрезок [2, 8, 2] длины 3 содержит две посылки с меткой 2. Для меток 5 и 8 отрезки длиннее: 5 и 4.

Пример 2
labels=[1, 2, 3] → -1

Все метки разные, ответ -1.

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

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