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

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

作者: 正经龙 | 来源:发表于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