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

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

示例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]
    }
  }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容