Ctrl K

Самая короткая невыпавшая серия

Сложная
Кубик с гранями 1, 2, …, faces бросили несколько раз подряд, результаты записаны в массив rolls в порядке бросков. Серия — любая последовательность значений граней. Серия *встречается* в rolls, если её можно получить из rolls, вычеркнув часть бросков (порядок оставшихся не меняется). Найдите длину самой короткой серии, которая в rolls не встречается.
Пример 1
rolls=[2, 1, 1, 2, 2], faces=2 → 3

Каждая грань выпадала, и все пары [1, 1], [1, 2], [2, 1], [2, 2] тоже встречаются. А серии [1, 2, 1] нет: все двойки после единиц выпали в самом конце, и единиц за ними уже нет.

Пример 2
rolls=[3, 1, 3, 3], faces=3 → 1

Двойка ни разу не выпала, так что уже [2] получить нельзя.

Пример 3
rolls=[1, 1, 1], faces=1 → 4

У кубика одна грань: найдутся последовательности из одной, двух и трёх единиц, а из четырёх — нет.

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

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