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