题目描述
给定一个整数数组,判断是否存在重复元素如果存在一值在数组中出现至少两次,函数返回 true如果数组中每个元素都不相同,则返回 false
sort 排序
var containsDuplicate = function (nums) {
nums = nums.sort((a, b) => {
return a - b
})
for (var i = 0; i < nums.length; i++) {
if (nums[i] === nums[i + 1])
return true
}
return false
};
const nums = [1, 2, 3, 4]
console.log(containsDuplicate(nums));
双指针
var containsDuplicate = function (nums) {
for (var i = 0; i < nums.length - 1; i++) {
for (var j = i + 1; j < nums.length; j++) {
if (nums[i] === nums[j]) {
return true
}
}
}
return false
};
const nums = [1, 2, 3, 1]
console.log(containsDuplicate(nums));
Map方法
var containsDuplicate = function (nums) {
const map = new Map()
for (var i = 0; i < nums.length; i++) {
if (map.has(nums[i])) {
return true
} else {
map.set(nums[i], 1)
}
}
return false
};
const nums = [1, 2, 3, 1]
console.log(containsDuplicate(nums));
Set方法
var containsDuplicate = function (nums) {
const set = new Set()
for (var i = 0; i < nums.length; i++) {
if (set.has(nums[i])) {
return true
} else {
set.add(nums[i], 1)
}
}
return false
};
const nums = [1, 2, 3, 1]
console.log(containsDuplicate(nums));