哈希表:Set/Dict
哈希函数
List拉链法实现哈希集合[LC 705]
class MyHashSet:
def __init__(self, M=2069, hashfunc=hash):
self.M = M
self.lists = [[] for _ in range(M)]
self.hashfunc = hashfunc
def hashCode(self, key: int) -> None:
return self.hashfunc(key) % self.M
def add(self, key: int) -> None:
if self.contains(key): return
self.lists[self.hashCode(key)].append(key)
def remove(self, key: int) -> None:
if not self.contains(key): return
self.lists[self.hashCode(key)].remove(key)
def contains(self, key: int) -> bool:
hc = self.hashCode(key)
return len(self.lists[hc])>0 and \
key in self.lists[hc]List拉链法实现哈希映射[LC 706]
Last updated