首页 > 技术文章 > single-number

heyour 2020-03-19 18:34 原文

题目描述

现在有一个整数类型的数组,数组中素只有一个元素只出现一次,其余的元素都出现两次。
注意:
你需要给出一个线性时间复杂度的算法,你能在不使用额外内存空间的情况下解决这个问题么?

测试用例:

输入:

7
2 3 2 3 4 1 4

输出:

1

 

最终AC代码:

#include <cstdio>
int main() {
    int i, t, n, a[10];
    while(scanf("%d", &n) != EOF){
        for(i=0; i<n; i++) scanf("%d", &a[i]);
        t = 0;
        for(i=0; i<n; i++){
            t ^= a[i];
            //printf("%d\n", t);
        }
        printf("%d\n", t);
    }
    return 0;
}

测试的时候打印的结果:

第0个--2--2
第1个--3--1
第2个--2--3
第3个--3--0
第4个--4--4
第5个--1--5
第6个--4--1

很奇妙!!!

 

推荐阅读