题目描述
给你一个整数数组 nums
。如果任一值在数组中出现 至少两次 ,返回 true
;如果数组中每个元素互不相同,返回 false
。
示例 1
输入:nums = [1,2,3,1]
输出:true
示例 2
输入:nums = [1,2,3,4]
输出:false
示例 3
输入:nums = [1,1,1,3,3,4,3,2,4,2]
输出:true
提示
- 1 <= nums.length <=
- - <= nums[i] <=
题目分析
这道题很简单,直接使用哈希集合解决就行。遍历数组中的每个元素,检查集合中是否存在相同的元素,存在即返回 true
,不存在则把新元素添加进集合,最后遍历完没有存在相同的元素就直接返回 false
即可。
题解
执行用时: 7 ms
内存消耗: 54.1 MB
class Solution {
public boolean containsDuplicate(int[] nums) {
// 创建一个哈希集合
HashSet<Integer> integers = new HashSet<>();
// 遍历数组中的元素
for (int x : nums) {
// 如果集合中存在数组中的元素
if (integers.contains(x)) {
// 证明存在重复元素
return true;
}
// 否则添加新元素到集合中
integers.add(x);
}
// 没有存在重复元素
return false;
}
}
题目来源:力扣(LeetCode)