美文网首页
只出现一次的数字[数组]

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

作者: 正经龙 | 来源:发表于2018-10-07 15:29 被阅读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,无论先后
最后剩下的只能是单个的那个数值

相关文章

网友评论

      本文标题:只出现一次的数字[数组]

      本文链接:https://www.haomeiwen.com/subject/ysplaftx.html