欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【力扣Hot100】136. 只出现一次的数字

程序员文章站 2022-04-16 23:50:02
...

题目:只出现一次的数字

【力扣Hot100】136. 只出现一次的数字

分析
异或^运算的特点就是:与0异或等于本身本身异或等于0
而异或运算又满足交换律,因此可以得出,对数组中所有元素进行异或,凡是出现偶数对的元素均消失;结果便是剩下的出现奇数对的元素之间的异或结果。
而本题恰恰说明,只有一个元素是出现奇数次的,其他都是出现偶数次,因此异或的结果就是这个元素。

思路
题目中说了给的数组为非空,那么也就不需要进行特判了对吧,真好!
直接遍历,对所有元素进行累计异或运算;

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

【力扣Hot100】136. 只出现一次的数字