给你一个整数数组 nums
。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。
思路:
对于数组中每个元素,将它插入到哈希表中。如果插入一个元素时发现该元素已经存在于哈希表中,则说明存在重复的元素。
class Solution {
public boolean containsDuplicate(int[] nums) {
// Set集合的特性:无序,不重复
Set<Integer> set = new HashSet<Integer>();
for (int x : nums) {
if (!set.add(x)) {
// 该元素已经存在于哈希表中
return true;
}
}
return false;
}
}
- 时间复杂度O(N),其中 N 为数组的长度。
- 空间复杂度O(N),其中 N 为数组的长度。
HashSet
是Java中的一种集合类,它实现了Set
接口,是基于哈希表的数据结构。
HashSet
不保证元素的顺序,也不允许重复元素。
- 使用
add()
方法添加元素 - 使用
size()
方法获取HashSet中的元素数量 - 使用
contains()
方法检查HashSet中是否包含某个元素 - 使用
remove()
方法删除HashSet中的元素
网友评论