Java教程

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

本文主要是介绍数组::查找---查找数组中仅出现一次的元素,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

 

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/

这篇关于数组::查找---查找数组中仅出现一次的元素的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!