LeeCode 217.存在重复元素

给定一个整数数组,判断是否存在重复元素。

如果存在一个值在此数组中出现过两次及以上,则返回true,如果数组中每个元素都不相同,则返回false。

解法1,使用Set,并判断是否与原数组的长度相同,时间复杂度O(n),空间复杂度O(n)

/**
 * @param {number[]} nums
 * @return {boolean}
 */
var containsDuplicate = function(nums) {
    return new Set(nums).size!==nums.length
};

解法2,排序后,比较前后两个元素是否相同,时间复杂度O(nlogN),空间复杂度O(1)

/**
 * @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
};

两种方法的比较

LeeCode 217.存在重复元素

上一篇:Leetcode 217. 存在重复元素(DAY 138) ---- Leetcode 精选 TOP 面试题


下一篇:Python学习笔记