Ctrl K

Наибольший XOR близкой пары

Сложная
Дан массив положительных целых чисел values. Два числа x и y назовём **близкими**, если |x − y| ≤ min(x, y). Выберите из массива два числа, образующие близкую пару, так, чтобы их побитовый XOR был максимальным, и верните это значение. Один и тот же элемент можно взять дважды (такая пара всегда близкая, её XOR равен 0).
Пример 1
values=[3, 5, 6, 12] → 10

Близкие пары разных чисел: (3, 5), (3, 6), (5, 6), (6, 12). Их XOR: 6, 5, 3 и 10. Пара (5, 12) не близкая: 7 > 5. Ответ 10.

Пример 2
values=[1, 8] → 0

1 и 8 не близки (7 > 1), остаются только пары числа с самим собой, их XOR равен 0.

Ограничения
  • 1 ≤ len(values) ≤ 5 · 10⁴
  • 1 ≤ values[i] < 2²⁰
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиXOR близкой пары ЛёгкаяСлова для головоломок СложнаяЛучший XOR по цепочке начальников СложнаяСамая непохожая пара СредняяВсе способы расставить пробелы Сложная
загружаем Python…
Вход
values=[3, 5, 6, 12]
Ожидается
10

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