给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true
。如果数组中每个元素都不相同,则返回 false
。
输入: [1,2,3,1]
输出: true
输入: [1,2,3,4]
输出: false
输入: [1,1,1,3,3,4,3,2,4,2]
输出: true
哈希
let containsDuplicate = nums => {
let m = {};
for (let i = 0; i < nums.length; i++) {
if (m[nums[i]] !== undefined) {
return true;
} else {
m[nums[i]] = 1;
}
}
return false;
};
console.log(containsDuplicate([1, 2, 3, 1]));
console.log(containsDuplicate([1, 2, 3, 4]));
console.log(containsDuplicate([1,1,1,3,3,4,3,2,4,2]));
func containsDuplicate(nums []int) bool {
m := make(map[int]int, len(nums))
for _, num := range nums {
if _, ok := m[num]; ok {
return true
} else {
m[num] = 1
}
}
return false
}
class Solution {
public boolean containsDuplicate(int[] nums) {
HashSet<Integer> set = new HashSet<>();
for (int num : nums) {
if (!set.add(num)) {
return true;
}
}
return false;
}
}