题目描述(难度:简单)
- 给定一个整数数组,判断是否存在重复元素。
- 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。
示例1:
输入: [1,2,3,1]
输出: true
示例2:
输入: [1,2,3,4]
输出: false
解题思路
- Set法:使用 Set 集合去重,如果长度不相等,则重复
- 散列表法:使用散列表存储出现过的值,如果再次出现,则重复
- 排序法:将数组排序,如果第 n 元素和第 n+1 元素相等,则重复
代码
Set法
var containsDuplicate = function(nums){ return new Set(nums).size != nums.length; }
散列表法
var containsDuplicate = function(nums){ let set = new Set(); for(let i = 0 ;i<nums.lengtj;i++){ if(set.has(num[i])){ return true } set.add(nums[i]) } return false; }
排序法
var containsDuplicate = function (nums){ nums.sort((a,b) => a-b) for(let i = 0;i<nums.length;i++){ if(nums[i] === nums[i+1]){ return true; } } return false; }