这道题可以用直接暴力算法两个循环,但在java中可以应用HashSet
class Solution {
public boolean containsDuplicate(int[] nums) {
Set<Integer> res = new HashSet<>();
boolean a = true;
for(int i : nums) {
a = res.add(i);
if(a == false){
return true;
}
}
return false;
}
}
HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。
HashSet 允许有 null 值。
这里是引用HashSet 是无序的,即不会记录插入的顺序。
HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不?>确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。
HashSet 实现了 Set 接口。
HashSet 加入数据时,用的是add(),在底层其实也是调用的map的put,移去也是remove();
这篇博客探讨了如何利用Java中的HashSet数据结构解决数组中重复元素的问题。通过一个名为`containsDuplicate`的方法,利用HashSet的无重复特性和添加操作的O(1)时间复杂度,快速检查数组是否存在重复项。博主强调了HashSet在内存效率和查找速度上的优势,并提醒注意其非线程安全的特性。
252

被折叠的 条评论
为什么被折叠?



