leetcode 136. 只出现一次的数字

题目

难度:简单(方法很巧妙)
leetcode 136. 只出现一次的数字

思路

如果没有时间空间限制的话题目很简单,采用哈希表,第一次插入,第二次删除,最后哈希表中留下的数字便是答案。

如果要满足空间复杂度O(1),可以通过异或⊕运算,异或运算满足:

  1. a⊕a=0;
  2. a⊕0=a;
  3. 满足交换律、结合律:a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b。

详情见官方题解 136题官方题解