找出一个数组中只出现过一次的元素

来源:互联网 发布:swift 数组容量初始化 编辑:程序博客网 时间:2024/04/28 08:10
/**copyright@nciaebupt 转载请保留此信息*一个数组中有n个元素,其中只有一个只出现一次,其他恰好都出现两次,*怎样找出那个维一出现一次的元素。*要求的复杂度:时间:O(n),空间:O(1)*将数组中的数字进行异或运算,两个数进行异或,相同为0,不同为1,则出现两次的数全部抵消了。*扫描一遍数组复杂度为o(n),另外存储异或的中间结果,复杂度为o(1)。*/#include <cstdio>int main(int args,char ** argv){    int num[] = {3,2,8,2,3,5,9,5,9};    int res = 0;    for(int i = 0;i < sizeof(num)/sizeof(int);++i)    {        res = res ^ num[i];    }    printf("%d\n",res);    getchar();    return 0;}

原创粉丝点击