---
round: 1
ticket_no: 28
source_no: 7
slug: single-number
topic: Hash Table
difficulty: Easy
leetcode_id: 136
attempted: true
score: 2
verdict: partial
reviewed_at: 2026-09-12
---

# Билет 28 — Single Number

## Условие (как предъявлено)

Дан массив целых чисел `nums`, в котором каждое число встречается дважды, кроме одного. Нужно найти это единственное число. Требуется `O(n)` по времени и `O(1)` по памяти.

```
Input:  nums = [2,2,1]        →  1
Input:  nums = [4,1,2,1,2]    →  4
```

Constraints: `1 <= n <= 3*10^4`.

## Ответ

> Здесь нужно применить сложение, вернее, побитовый эксклюзивное ИЛИ. То есть мы числа начинаем по очереди, в порядке очереди складывать к XOR, и у нас просто будет накапливаться вот это итоговое число. То есть первое со вторым сложили, потом итог с третьим, итог с четвертым, и в итоге у нас останется как раз побитого выражения число, которое у нас пары не имело.

## Разбор

**Что верно:** XOR всех элементов: парные значения взаимно уничтожаются, остаётся уникальное — точный эталон и единственный способ уложиться в O(1) по памяти.

**Что упущено и ошибки:** не названа сложность O(n) / O(1), хотя именно её и проверяют в этой задаче; граничные случаи (массив из одного элемента) не разобраны.

**Эталонная идея:** nums.reduce(:^).

**Сложность:** время O(n), память O(1)

**Критерии:** идея ✅ · структура данных ✅ · сложность ❌ · граничные случаи ⚠️


**Разбор задачи:** [`../../algo-solutions/01-must-have/02-hash-table/07-single-number.md`](../../algo-solutions/01-must-have/02-hash-table/07-single-number.md)
