您的位置:首页 > 其它

[leetcode]2018.3.22 只出现一次的数字

2018-03-22 15:57 253 查看
 只出现一次的数字
给定一个整数数组,除了某个元素外其余元素均出现两次。请找出这个只出现一次的元素。 备注:你的算法应该是一个线性时间复杂度。 你可以不用额外空间来实现它吗?
---------------------------------------------------------------------------
思路:
1.直接解法 先进行排序,然后使用双指针遍历。时间复杂度不符合。
---------------------------------------------------------------------------

2.使用异或操作。
这个程序用了个小技巧:一个整数和它本身异或之后得到值是0,0与其他整数异或得到的是这个整数本身。int singleNumber(int* nums, int numsSize) {
int ret=0;
int i;
if(numsSize<1)
{
return 0;
}
for(i=0;i<numsSize;i++)
{
ret ^= nums[i];
}
return ret;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode