题目链接
https://leetcode-cn.com/problems/single-number/
解题思路
异或运算
任何数和0做异或运算,结果仍然是原来的数,即a⊕0 = a
任何数和自身做异或运算,结果是0,a⊕a=0
异或运算满足交换律和结合律
显然,只要对数组中的元素做一次异或运算,最终结果就是数组中只出现一次的数字
AC代码
class Solution {
public int singleNumber(int[] nums
) {
int ans
= nums
[0];
for(int i
= 1; i
< nums
.length
; i
++){
ans
^= nums
[i
];
}
return ans
;
}
}