「LeetCode」 只出现一次的数字(JAVA实现)

只出现一次的数字

问题描述

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

实现思路

通过异或实现
主要运用异或运算符的两个性质

  1. 满足交换率
  2. 对于任何数x,都有xx=0,x0=x

实现代码

class Solution {
    public int singleNumber(int[] nums) {
        int num = 0;
        for(int n : nums){
            num = num ^ n;
        }
        return num;
    }
}
posted @ 2019-04-26 00:31  张金麒  阅读(327)  评论(0)    收藏  举报