# CSPT13 Lecture 13 ## [HashSet](https://leetcode.com/problems/design-hashset/) ``` from collections import deque class MyHashSet: """ Understand mySet = MyHashSet() mySet.add(1) { 1 } mySet.add(2) { 1, 2 } mySet.contains(1) True mySet.remove(1) { 2 } mySet.contains(1) False mySet.contains(2) True Plan Init Initialize the list with a static size Add Run key through hash function and store key in the list using the index from the hash function Contains Run key through hash function to get hashIndex Check list at hashIndex to see if something is stored there Remove Run key through hash function. Make value at hashIndex to None """ def __init__(self): """ Initialize your data structure here. """ self.table = [None] * 10000 def add(self, key: int) -> None: hashIndex = hash(key) % len(self.table) if self.table[hashIndex] == None: newList = deque() newList.append(key) self.table[hashIndex] = newList elif key not in self.table[hashIndex]: self.table[hashIndex].append(key) def remove(self, key: int) -> None: hashIndex = hash(key) % len(self.table) if self.table[hashIndex] != None: try: self.table[hashIndex].remove(key) except: pass def contains(self, key: int) -> bool: """ Returns true if this set contains the specified element """ hashIndex = hash(key) % len(self.table) if self.table[hashIndex] != None: return key in self.table[hashIndex] return False ```