#2138. 设计哈希集合
设计哈希集合
问题描述
请你设计一个不使用任何内建的哈希表库的哈希集合(HashSet)。
实现MyHashSet
类:
void add(int key)
:向哈希集合中插入值key。bool contains(int key)
:返回哈希集合中是否存在这个值key。void remove(int key)
:将值key从哈希集合中删除,如果集合中不存在key,则什么也不做。
格式
输入
- 一系列操作序列和对应的参数。
输出
- 每个操作的返回值(对于无返回值的操作,如add和remove,返回null)。
样例
样例1
输入
9
MyHashSet add add contains contains add contains remove contains
0 1 2 1 3 2 2 2 2
输出
null null null true false null true null false
解释
MyHashSet myHashSet = new MyHashSet(); myHashSet.add(1); // set = [1] myHashSet.add(2); // set = [1, 2] myHashSet.contains(1); // 返回 true myHashSet.contains(3); // 返回 false (未找到) myHashSet.add(2); // set = [1, 2] myHashSet.contains(2); // 返回 true myHashSet.remove(2); // set = [1] myHashSet.contains(2); // 返回 false (已删除)
提示
- 0 <= key <= 10^6
- 最多调用10^4次
add
、remove
和contains