LeetCode 136:Single Number I

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;
    }
};




你可能感兴趣的:(LeetCode,位运算,number,single)