LeetCode题解 => 136.只出现一次的数字 (四十四)

只出现一次的数字

一、LeetCode题解

瞧一瞧~

二、算法题

题目

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

说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

示例 1:

输入: [2,2,1]
输出: 1

示例 2:

输入: [4,1,2,1,2]
输出: 4

解法(异或判断)

思路

利用异或的特性

var singleNumber = function(nums) {
  var res = 0;
  if(nums.length < 2){
    return nums[0]
  }
  for(var i = 0 ;i < nums.length; i++ ){
    res ^= nums[i] //亦或  运用异或运算,任何一个数字异或它自己都等于0。
  }
  return res
};
结果

在这里插入图片描述

解法二 (遍历统计)

解法三(Map)

相关推荐
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页