0
点赞
收藏
分享

微信扫一扫

数组Array-136.只出现一次的数字

王栩的文字 2022-05-01 阅读 144

136. 只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

异或运算(消消乐)

异或运算性质:

  1. a XOR 0 = a
  2. a XOR a = 0
  3. a XOR b XOR a = b XOR (a XOR a) = b 满足交换律和结合律

所以可以遍历nums,从第一个数开始异或运算,到最后,出现了两次的值会抵消,只会剩下那个solo

class Solution {
    public int singleNumber(int[] nums) {
        int n = 0;
        for(int num : nums){
            n ^= num;
        }
        return n;
    }
}
举报

相关推荐

0 条评论