SprintCode.pro

Подготовка к алгоритмическим задачам

Super

Single Number (Число без пары)

Описание: В массиве nums каждый элемент встречается дважды, кроме одного, который встречается один раз. Найдите этот элемент.

Пример 1:

Вход: nums = [2,2,1]
Выход: 1
Объяснение: Двойка встречается дважды, единица один раз

Пример 2:

Вход: nums = [4,1,2,1,2]
Выход: 4
Объяснение: Только четвёрка без пары

Ограничения:

1 <= nums.length <= 3·10⁴

Каждый элемент кроме одного встречается ровно дважды

Рекомендуемая временная и пространственная сложность

Стремитесь к решению за O(n) по времени и **O(1) по памяти** — без дополнительных структур.


Подсказка 1

Решение через хеш-таблицу очевидно, но требует O(n) памяти. Условие просит O(1).


Подсказка 2

Вспомните свойства операции XOR: x ^ x = 0 и x ^ 0 = x.


Подсказка 3

XOR коммутативен, поэтому порядок не важен. Если сложить по XOR все элементы, парные взаимно уничтожатся.

Задача на битовые операции. Учит применять свойства XOR для решения за O(1) по памяти там, где очевидное решение требует хеш-таблицы. Классический вопрос на собеседованиях.

Входные параметры :

[2,2,1]

Ожидаемый результат

1