首页 > 编程语言 > 详细

leetcode Single Number C++ 解题思路

时间:2015-04-12 14:37:05      阅读:326      评论:0      收藏:0      [点我收藏+]

题目描述:

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?

 

要求线性复杂度和不用额外存储空间。

自己想了下没想出来,学习了discuss里其他人的方法。

初始化一个int num=0,然后用这个num和数组里的每个数都异或一遍,因为两个相同的数异或后会变成0,所以遍历到最后是0和那个单独的数异或,结果即为那个单独的数,注意到,0和0异或还是0,所以要初始化为0.

代码如下:

int singleNumber(int A[], int n)
{
    int num = 0;
    for(int i = 0; i < n; i++)
        num ^=A[i];
    return num;
}

 

leetcode Single Number C++ 解题思路

原文:http://www.cnblogs.com/nily/p/4419368.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!