给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
要求: 空间复杂度O(1), 时间复杂度O(n);
我们把数组中所有的数字都异或起来,则每对相同的数字都会得0,然后最后剩下来的数字就是那个只有1次的数字。
public int singleNumber(int[] nums){
int res = 0;
for(int num : nums){
res ^= num
}
return res;
}