Ctrl K

Далеко и непохоже

Лёгкая
Дан массив values и два числа min_gap и min_diff. Найдите индексы i ≤ j (нумерация с нуля, i может совпадать с j), такие что: - j - i ≥ min_gap — индексы далеко друг от друга; - |values[i] - values[j]| ≥ min_diff — значения сильно различаются. Верните [i, j]. Если подходящих пар несколько, ответ выбирается однозначно: 1. j должно быть как можно меньше; 2. для этого j в качестве i сначала пробуется самое **маленькое** значение среди values[0..j - min_gap] (если оно встречается несколько раз — самая левая позиция); 3. если эта пара не подходит, берётся самое **большое** значение среди них (тоже самая левая позиция). Если подходящей пары нет, верните [-1, -1].
Пример 1
values=[6, 2, 9, 1], min_gap=2, min_diff=5 → [0, 3]

Для j = 2 подходит только i = 0, но |9 - 6| = 3 < 5. Для j = 3 можно взять i = 0 или 1; самое маленькое из values[0..1] — 2 на позиции 1, а 1 - 2 = -1 < 5; самое большое — 6 на позиции 0, и 6 - 1 = 5 ≥ 5. Ответ [0, 3].

Пример 2
values=[4, 7], min_gap=0, min_diff=0 → [0, 0]

При нулевых требованиях подходит уже j = 0 в паре с самим собой.

Пример 3
values=[3, 5, 4], min_gap=1, min_diff=3 → [-1, -1]

Значения отличаются не больше чем на 2, подходящей пары нет.

Ограничения
  • 1 ≤ len(values) ≤ 100
  • 0 ≤ values[i] ≤ 50
  • 0 ≤ min_gap ≤ 100
  • 0 ≤ min_diff ≤ 50
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСжать повторы в отсортированном массиве ЛёгкаяВыкинуть лишнее значение ЛёгкаяСлияние в запасной хвост ЛёгкаяНули в конец ЛёгкаяЗначения в обоих списках Лёгкая
загружаем Python…
Вход
values=[6, 2, 9, 1], min_gap=2, min_diff=5
Ожидается
[0, 3]

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