题目: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
};
题解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
};
题解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
};