给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
时间复杂度比较高;
int nums[] = { 1,3,4,5,4,3,6,7,4,9,6,5,1,8,8 };
for (int i = 0; i < sizeof(nums)/sizeof(nums[0]); ++i)
{
int count=0;
for (int j = 0; j < sizeof(nums) / sizeof(nums[0]); ++j)
{
if (nums[i] == nums[j])
++count;
}
if (count == 1)
{
return nums[i];
}
}
return 0;
int singleNumber(vector<int>&nums)
{
int ret = 0;
for (const int& e : nums)
ret ^= e;
return ret;
}
原文:https://blog.51cto.com/14982125/2692419