#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次addremovecontains