Ctrl K

Повтор в пределах окна

Лёгкая
Турникет записывает номера пропусков ids в порядке прохода. Подозрительно, если один и тот же пропуск прикладывали дважды слишком близко друг к другу. Верните True, если найдутся две разные позиции i и j, такие что ids[i] == ids[j] и |i - j| ≤ reach. Иначе верните False.
Пример 1
ids=[7, 3, 9, 7], reach=3 → True

Пропуск 7 приложили на позициях 0 и 3: разница 3, это не больше reach.

Пример 2
ids=[7, 3, 9, 7], reach=2 → False

Те же два прохода, но теперь допустимое расстояние только 2.

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

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