力扣705-设计哈希集合
原题 :https://leetcode-cn.com/problems/design-hashset/
不使用任何内建的哈希表库设计一个哈希集合(HashSet)。
实现 MyHashSet 类:
void add(key) 向哈希集合中插入值 key 。
bool contains(key) 返回哈希集合中是否存在这个值 key 。
void remove(key) 将给定值 key 从哈希集合中删除。如果哈希集合中没有这个值,什么也不做。
个人理解
同力扣706 https://www.cnblogs.com/wang102030/p/14533987.html
class MyHashSet:
def __init__(self):
"""
Initialize your data structure here.
"""
self.buckets = 1009
self.table = [ [] for _ in range(self.buckets) ]
def hash(self,key):
return key % self.buckets
def add(self, key: int) -> None:
hashkey = self.hash(key)
for item in self.table[hashkey]:
if item == key:
return
self.table[hashkey].append(key)
def remove(self, key: int) -> None:
hashkey = self.hash(key)
for i, item in enumerate(self.table[hashkey]):
if item == key:
self.table[hashkey].pop(i)
return
def contains(self, key: int) -> bool:
"""
Returns true if this set contains the specified element
"""
hashkey = self.hash(key)
for item in self.table[hashkey]:
if item == key:
return True
return False