LeetCode #705: Design HashSet
β’ 156 words β’ 1 min
LeetCode #705: Design HashSet:
Shortcut:
python
class MyHashSet:
def __init__(self):
self.s = set()
def add(self, key: int) -> None:
self.s.add(key)
def remove(self, key: int) -> None:
if key in self.s:
self.s.remove(key)
def contains(self, key: int) -> bool:
return key in self.s
# Your MyHashSet object will be instantiated and called as such:
# obj = MyHashSet()
# obj.add(key)
# obj.remove(key)
# param_3 = obj.contains(key)Proper:
python
class MyHashSet:
def __init__(self):
self.size = 1000
self.s = [[] for _ in range(self.size)]
def hash(self, key):
assert isinstance(key, int)
return key % self.size
def add(self, key: int) -> None:
bucket = self.s[self.hash(key)]
if key not in bucket:
bucket.append(key)
def remove(self, key: int) -> None:
bucket = self.s[self.hash(key)]
if key in bucket:
del bucket[bucket.index(key)]
def contains(self, key: int) -> bool:
bucket = self.s[self.hash(key)]
return key in bucket
# Your MyHashSet object will be instantiated and called as such:
# obj = MyHashSet()
# obj.add(key)
# obj.remove(key)
# param_3 = obj.contains(key)