136. 只出现一次的数字

leetcode-136. 只出现一次的数字

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public:
int singleNumber(vector<int>& nums) {
int result = 0;
for(int num : nums)
{
result = result ^ num;
}
return result;
}
};

对于任意数n:

  • n ^ n = 0
  • n ^ 0 = n
  • 异或满足交换律:a ^ b ^ c = a ^ c ^ b

满足线性时间复杂度的要求。