View on GitHub wznonstop

存在重复

给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。

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

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

我的实现:

/**
 * @param {number[]} nums
 * @param {number} k
 * @return {void} Do not return anything, modify nums in-place instead.
 */
/**
 * @param {number[]} nums
 * @return {number}
 */
var singleNumber = function(nums) {
    if (nums.length < 2) {
        return nums[0];
    }
    nums.sort((a,b)=>(a-b));
    let single = null;
    nums.reduce(function(pre,cur,index,nums){
        if (index === 1) {
            if ((nums[index-1] - cur) !== 0) {
                single = nums[index-1];
            }
        } else if (index < (nums.length - 1)) {
            if ((nums[index-1] - cur) * (nums[index+1] - cur) !== 0) {
                single = cur;
            }
        } else {
            if (cur - (nums[index - 1]) !== 0) {
                single = cur;
            }
        }
    });
    return single;
};