217. 存在重复元素

https://leetcode-cn.com/problems/contains-duplicate/

解法一:排序

得到的有序数组中,若相邻两数相等,则存在重复元素。

/**
 * @param {number[]} nums
 * @return {boolean}
 */
var containsDuplicate = function(nums) {
    nums.sort((a, b) => a - b)
    for (let i = 0; i < nums.length-1; i++) {
        if (nums[i] === nums[i+1]) return true
    }
    return false
};

解法二:哈希表

一次遍历,将所有元素写入一个set,每次判断set中是否已存在该元素

/**
 * @param {number[]} nums
 * @return {boolean}
 */
var containsDuplicate = function(nums) {
    s = new Set()
    for (i in nums) {
        if (s.has(nums[i])) return true
        s.add(nums[i])
    }
    return false
};

最后更新于