136. 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
输入: [4,1,2,1,2] 输出: 4
异或运算(消消乐)
异或运算性质:
- a XOR 0 = a
- a XOR a = 0
- a XOR b XOR a = b XOR (a XOR a) = b 满足交换律和结合律
所以可以遍历nums,从第一个数开始异或运算,到最后,出现了两次的值会抵消,只会剩下那个solo
class Solution {
public int singleNumber(int[] nums) {
int n = 0;
for(int num : nums){
n ^= num;
}
return n;
}
}