-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Expand file tree
/
Copy pathMyHashSet.py
More file actions
46 lines (38 loc) · 1.19 KB
/
MyHashSet.py
File metadata and controls
46 lines (38 loc) · 1.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
'''
Time Complexity : O(1)
Space Complexity : O(n)
Did this code successfully run on Leetcode : Yes
Any problem you faced while coding this : No
'''
class MyHashSet:
def __init__(self):
self.bucket = 1000
self.bucketItem = 1001
self.storage = [[] for i in range(self.bucket)]
def add(self, key: int) -> None:
index = key%self.bucket
if self.storage[index] == []:
self.storage[index] = [False for i in range(self.bucketItem)]
index2 = key//self.bucketItem
self.storage[index][index2] = True
def remove(self, key: int) -> None:
index = key%self.bucket
if self.storage[index]:
index2 = key//self.bucketItem
self.storage[index][index2] = False
def contains(self, key: int) -> bool:
index = key%self.bucket
index2 = key//self.bucketItem
if self.storage[index] != []:
return self.storage[index][index2]
else:
return False
obj = MyHashSet()
print(obj.add(10))
print(obj.add(40))
print(obj.contains(10))
print(obj.contains(30))
print(obj.add(40))
print(obj.contains(40))
print(obj.remove(40))
print(obj.contains(40))