其他分享
首页 > 其他分享> > 数组::查找---查找数组中仅出现一次的元素

数组::查找---查找数组中仅出现一次的元素

作者:互联网

题目要求:查找数组中仅出现一次的元素,其余的元素出现两次,要求线性时间复杂度和常数额外空间开销

 

1. 求和法

(1)  去重

(2) 求去重后的2倍和

(3) 用(2)的结果减去当前数组全部元素和

 

2. 异或XOR法(相异为1,相同为0)

异或的一些性质:

(1)一个数与自身异或奇数次,结果还是自身;

(2)一个数与自身异或偶数次,结果是0;

(3)一个数与0异或,结果总是这个数;

(4)异或遵循交换律,结合律和自反律;

(5)异或与模2加法相同?

 

3. 二分搜索法

 

4. 哈希计数:O(n)但需要一个数组空间;

 

5. 暴力统计:O(n^2)复杂度;

 

参考链接:https://www.geeksforgeeks.org/find-element-appears-array-every-element-appears-twice/

标签:中仅,复杂度,元素,异或,查找,数组
来源: https://www.cnblogs.com/cwfeng/p/15110838.html