136. 只出现一次的数字

image.png

巧用异或运算

  1. class Solution {
  2. // 任何数和 0 做异或运算,结果仍然是原来的数,即 a ^ 0 = a
  3. // 任何数和其自身做异或运算,结果是 0,即 a ^ a = 0
  4. // 根据这个性质可得,数组中的全部元素的异或运算结果即为数组中只出现一次的数字
  5. public int singleNumber(int[] nums) {
  6. int res = 0;
  7. for (int num : nums) {
  8. res ^= num;
  9. }
  10. return res;
  11. }
  12. }