码迷,mamicode.com
首页 > 其他好文 > 详细

single-number

时间:2015-05-13 22:01:30      阅读:138      评论: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?
因为A XOR A = 0,且XOR运算是可交换的,于是,对于实例{2,1,4,5,2,4,1}就会有这样的结果:

(2^1^4^5^2^4^1) => ((2^2)^(1^1)^(4^4)^(5)) => (0^0^0^5) => 5
就把只出现了一次的元素(其余元素均出现两次)给找出来了!

class Solution {
public:
    int singleNumber(int A[], int n) {
        int ans = A[0];
        for (int i = 1; i < n; i++)
        {
            ans = ans ^ A[i];
        }
        return ans;

    }
};

single-number

标签:

原文地址:http://blog.csdn.net/a819721810/article/details/45697101

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!