LeetCode | 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?

思路:

直接排序或对比,时间复杂度一定在nlogn以上。利用Hash表或者Bitmap可以满足时间复杂度但是空间复杂度不能满足。O(n)时间类能采用的办法只有异或。

代码:

class Solution {
public:
    int singleNumber(int A[], int n) {
        while (--n!=0) A[n-1]^=A[n];
        return A[0];
    }
};

    原文作者:Allanxl
    原文地址: https://blog.csdn.net/lanxu_yy/article/details/17304741
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞