这道题可以用直接暴力算法两个循环,但在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();