Single Number
Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
一个整形数组,除某个元素外,每个元素都出现了2次(Single NumberII中出现了3次),找出这个只出现一次的元素。要求,线性时间复杂度、不使用额外的空间。
Single Number 比较简单,由于其余元素都出现了两次,通过位运算中 N xor N = 0即可方便的找到这个只出现一次的元素。代码如下:
class Solution {
public:
int singleNumber(vector<int>& nums) {
int length = nums.size();
int result = 0 ;
for (int i=0; i<length; i++)
{
result ^= nums[i];
}
return result;
}
};