美文网首页
获取数组中只出现一次的数字

获取数组中只出现一次的数字

作者: 前端小白加一枚 | 来源:发表于2019-10-11 16:27 被阅读0次

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

示例1:
输入:[1,2,2,3,3]
输出:1

解题思路:
先把数组按照从大到小排序,
然后先考虑第一个和最后一位数字的情况,
如果第一位和第二位不等 则返回第一位;
若最后一位与倒数第二位不相等 则返回最后一次;
然后比较当前相邻左右数字,如果两边都不相等 则返回当前数字

代码如下:

function singleNumber(nums){
    nums = nums.sort((a,b)=>a-b);
    if(nums[0] !==nums[1]){
        return nums[0];
    }
  if(nums[nums.length-1] !==nums[length-2]){
      return nums[length-1]
  }
  for(let i =1;i<nums.length;i++){
    if(nums[i] !== nums[i-1] && nums[i] !== nums[i+1]){
        return nums[i]
    }
  }
}

相关文章

网友评论

      本文标题:获取数组中只出现一次的数字

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