Leetcode答题 --- 只出现一次的数字

题目

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

示例

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

思路

方法一:通过判断数组中的元素indexOf和lastIndexOf相同,则该元素为唯一一个

方法二:异或运算(方法来自题解)

1、0和任何数做异或运算等于任何数 0 ^ n = n
2、任何数和其自身做异或运算等于0 n ^ n = 0

实现

方法一

var singleNumber = function(nums) {
    return nums.filter(item => nums.indexOf(item) === nums.lastIndexOf(item))[0] // 执行时间长
};

方法二

var singleNumber = function(nums) {
  return nums.reduce((result, cur) => result ^= cur, 0)
};

你可能感兴趣的:(Leetcode解题记录,Javascript,leetcode)