概述
/*
*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("%dn",res);
getchar();
return 0;
}
最后
以上就是无私哑铃为你收集整理的找出一个数组中只出现过一次的元素的全部内容,希望文章能够帮你解决找出一个数组中只出现过一次的元素所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复