Given an array of integers, every elements appears twice expect for one. Find the single one. Do it without using extra memory.
This problem can be solved using "set" or Hash Map. However, it is going to use extra memory space.
// we need to consider using bit manipulation. A ^ A = 0, 0 ^ A = A
// Since in this array, every elements appears twice expect for one. We can use above equations.
int onlyOne(vector<int> input) {
// we need to first check the size of input.
if(input.size() == 0) return 0;
int result = 0;
for(auto it : input) {
result ^= it;
}
return result;
}
本文介绍了一种不使用额外内存找出数组中唯一出现一次的元素的方法。通过位操作实现,利用A^A=0及0^A=A特性,遍历数组进行异或运算找到目标元素。
718

被折叠的 条评论
为什么被折叠?



