leetcode超简单题 - 217.存在重复元素 Javascript 题解

26 阅读1分钟

题目:217. 存在重复元素

给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。

示例 1:

输入: nums = [1,2,3,1]
输出: true

真简单题啪一下,很快啊!

题解1: Set去重

利用Set对数组去重,比较去重后集合的长度是否跟数组长度相同

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

image.png

题解2:Map

遍历数组,将数组中的元素存入map中,myMap.has(nums[i])为true则表示存在重复元素,否则返回false

/** 
* @param {number[]} nums 
* @return {boolean} 
*/ 
var containsDuplicate = function(nums) { 
    let myMap = new Map() 
    for(let i = 0; i< nums.length;i++){ 
        if(myMap.has(nums[i])) { 
            return true 
        } else {
            myMap.set(nums[i]) 
          }
    } 
    return false 
};

image.png

题解3:排序+遍历

将数组排序,如果存在重复元素,那么一定是相邻元素相同。

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

image.png

image.png