数组中只出现一次的数字 题目链接 牛客网 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次,找出这两个数。 解题思路 两个相等的元素异或的结果为 0,而 0 与任意数 x 异或的结果都为 x。 对本题给的数组的所有元素执行异或操作,得到的是两个不存在重复的元素异或的结果。例如对于数组 [x,x,y,y,z,k],x^x^y^y^z^k = 0^y^y^z^k = y^y^z^k = 0^z^k = z^k。 两个不相等的元素在位级表示上一定会有所不同,因此这两个元素异或得到的结果 diff 一定不为 0。位运算 diff & -diff 能得到 diff 位级表示中最右侧为 1 的位,令 diff = diff & -diff。