Назад к вопросам
СБЕР
Senior
4
//Дан массив чисел, в котором все числа кроме одного имеют пару, //найти число, которое встречается только один раз // <= [1, 0, 3, -2, 9, 9, 1, -2, 0] // => 3 int find(int[] arr){ int result = 0; for(int num : arr){ result ^= num; } return result; }
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В представленном коде используется операция XOR (исключающее ИЛИ) для поиска числа, которое встречается в массиве только один раз, когда все остальные числа имеют пару.
Идея в том, что XOR двух одинаковых чисел даёт 0, а XOR с 0 даёт само число. Поэтому, пройдя по всему массиву и применяя XOR ко всем элементам, в итоге останется только число без пары.
Пример на Java:
int find(int[] arr) {
int result = 0;
for (int num : arr) {
result ^= num; // XOR с текущим числом
}
return result;
}
// Использование:
// int[] arr = {1, 0, 3, -2, 9, 9, 1, -2, 0};
// System.out.println(find(arr)); // Выведет 3
Этот метод эффективен по времени (O(n)) и не требует дополнительной памяти.