给定一个整数数组,判断是否存在重复元素。
如果存在一个值在此数组中出现过两次及以上,则返回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
};