只出现一次的数字[数组]

2018-10-07  本文已影响0人  正经龙

题目描述

题目

解决思路

代码部分

class Solution {
    public int singleNumber(int[] nums) {
        Arrays.sort(nums);
        for(int i=0;i<nums.length-1;i=i+2){
            if(nums[i]!=nums[i+1])
                return nums[i];
        }
        return nums[nums.length-1];
    }
}

通过情况

执行用时:6ms
通过情况

优质解答

class Solution {
    public int singleNumber(int[] nums) {
        for(int i=1;i<nums.length; i++){
            nums[0] ^= nums[i];
        }
        return nums[0];
    }
}

执行用时:1ms

优质思路

当一堆数组从第一位按位异或时,相同的数值总会相抵消变为0,无论先后
最后剩下的只能是单个的那个数值

上一篇下一篇

猜你喜欢

热点阅读