20201213
给定一个整数数组,判断是否存在重复元素。
如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
输入: [1,2,3,1]
输出: true
输入: [1,2,3,4]
输出: false
输入: [1,1,1,3,3,4,3,2,4,2]
输出: true
Hard 唯唯诺诺,Easy 就要重拳出击
抛砖引玉
使用 set 去重比较长度是否改变
/**
* @param {number[]} nums
* @return {boolean}
*/
var containsDuplicate = function(nums) {
return nums.length !== new Set(nums).size
}
哈希表记录已经出现的元素,遇到已出现元素直接返回 false
var containsDuplicate = function(nums) {
let map = new Map()
for (let i = 0; i < nums.length; i++) {
if (map.has(nums[i])) return false
map.set(nums[i])
}
return true
}
排序后遍历检查相邻元素是否相同
var containsDuplicate = function(nums) {
nums.sort((a, b) => a - b)
for (let i = 1; i < nums.length; i++) {
if (nums[i - 1] === nums[i]) return false
}
return true
}
博客: 前端小书童
每天的每日一题,写的题解会同步更新到公众号一天一大 lee 栏目 欢迎关注留言
公众号:前端小书童