Ctrl K

Близкие показания рядом

Сложная
Датчик записал показания в массив readings. Даны также числа max_gap и tolerance. Определите, есть ли два **разных** индекса i и j, для которых одновременно: - |i - j| ≤ max_gap — показания сняты недалеко друг от друга; - |readings[i] - readings[j]| ≤ tolerance — и при этом почти совпадают. Верните True, если такая пара есть, иначе False.
Пример 1
readings=[40, 15, 22, 38], max_gap=2, tolerance=5 → False

40 и 38 отличаются всего на 2, но стоят на расстоянии 3 — слишком далеко. Соседние пары (40, 15), (15, 22), (22, 38) и пары через одного (40, 22), (15, 38) отличаются больше чем на 5. Подходящей пары нет.

Пример 2
readings=[40, 15, 22, 38], max_gap=3, tolerance=5 → True

Теперь допускается расстояние 3, и пара 40 и 38 (индексы 0 и 3) подходит.

Пример 3
readings=[-7, -7], max_gap=1, tolerance=0 → True
Ограничения
  • 2 ≤ len(readings) ≤ 10⁵
  • -10⁹ ≤ readings[i] ≤ 10⁹
  • 1 ≤ max_gap ≤ len(readings)
  • 0 ≤ tolerance ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый узкий отрезок для всех списков СложнаяТёмный промежуток между фонарями СложнаяПоворотная камера СложнаяБлижайший просторный номер СложнаяСколько цветёт в день визита Сложная
загружаем Python…
Вход
readings=[40, 15, 22, 38], max_gap=2, tolerance=5
Ожидается
False

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