题解 | #只出现一次的数字#位运算#附异或运算性质
只出现一次的数字
https://www.nowcoder.com/practice/c04bd25f0396471b90dfc30d96b9109b
异或运算有以下三个性质:
1. 任何数和 0 做异或运算,结果仍然是原来的数,即 a⊕0=a;
2. 任何数和其自身做异或运算,结果是 0,即 a⊕a=0;
3. 异或运算满足交换律和结合律,即 a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b;
class Solution { public: int singleNumber(vector<int>& nums) { // write code here int n; for(int i:nums){ n^=i;//利用性质1和2; } return n; } };