Привет, Хабр! Держите задачу от наставника курса «Разработчик на С++» Саввы Лебедева. Предлагайте варианты решения в комментариях.
Дан непустой массив целочисленных элементов, где каждый элемент повторяется дважды, кроме одного. Найдите этот одинокий элемент.
Идеально выполнить за линейную сложность по времени и константную сложность по памяти. Заодно попробуйте решить эту задачу менее оптимальным способом по памяти, например с использованием множества или словаря.
Пример 1:
Ввод: nums = [2,2,1]
Вывод: 1
Пример 2:
Ввод: nums = [4,1,2,1,2]
Вывод: 4
Пример 3:
Ввод: nums = [1]
Вывод: 1
Ограничения:
1 <= nums.size() <= 3 * 10^4
-3 * 10^4 <= nums[i] <= 3 * 10^4
Каждый элемент в массиве повторяется дважды, кроме одного: он будет единожды.
int FindSingleNumber(vector<int>& nums) {
...
}