Недавно я натолкнулся на этот вопрос на Leetcode и выяснил решение, которое мне нужно уточнить, с помощью
Учитывая массив целых чисел, каждый элемент появляется дважды, кроме одного. Найдите этот единственный.
Примечание: Ваш алгоритм должен иметь сложность линейного выполнения. Не могли бы вы реализовать его без использования дополнительной памяти?
class Solution {
public:
int singleNumber(vector<int>& nums) {
int result = 0;
for(auto & c : nums) {
result ^= c;
}
return result;
}
};
Прежде всего, какие ключевые слова я должен обратить внимание, чтобы выяснить, что я должен использовать операцию XOR для этого вопроса?
Кроме того, почему XOR'ing все элементы в векторе друг с другом дают нам тот, который не повторяется?
Спасибо всем за эти ответы, вот еще информация о побитовых свойствах для кого-то другого: Более побитовая информация