136. Single Number

一、题目

  1、审题

  2、分析

    给出一个非空的只有一个元素出现一次其他元素均出现两次的整形数组,求出出现一次的该元素。 (不使用额外的空间,而且时间复杂度为线性)

二、解答

  1、思路: 

    采用异或(^) 运算符。

    1 ^ 1 = 0 ^ 0 = 0;1 ^ 0 = 1;

    故,a ^  b ^ a = b

    // ^ : 异或, 1^1 = 0, 0^1 = 1 
    public int singleNumber(int[] nums) {
     
        for (int i = 1; i < nums.length; i++) {
            nums[0] ^= nums[i];
        }
        
        return nums[0];
    }
    
原文地址:https://www.cnblogs.com/skillking/p/9765624.html