用异或提取出数组中的单独数
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/12149197.html
如果一个数组中存在若干对相同的数,和一个单独的数,例:
[1, 2, 3, 2, 3, 4, 5, 5, 4]
如果要快速找出其中那个单独数,可以用异或(^)来解决。
因为异或的原理是把数转换成二进制后,对二进制位进行对比, 相同则得0,不同则得1。
public int singleNumber(int[] nums) { int single = 0; for (int i = 0; i < nums.length; i++) { single ^= nums[i]; } return single; }
如上即可。