Design HashMap
franklinqin0 ArrayHash TableLinked ListDesignHash Function
# Solution
# Modulo + Array
class MyHashMap:
def __init__(self):
# given around 10^4 calls, set the number of predefined buckets in the hashmap
self.pn = 2103
self.lst = [[] for _ in range(self.pn)]
def put(self, key: int, value: int) -> None:
k = key % self.pn
for i in range(len(self.lst[k])):
ki, vi = self.lst[k][i]
if key == ki:
self.lst[k][i] = (key, value)
return
self.lst[k].append((key, value))
def get(self, key: int) -> int:
k = key % self.pn
for i in range(len(self.lst[k])):
ki, vi = self.lst[k][i]
if key == ki:
return vi
return -1
def remove(self, key: int) -> None:
k = key % self.pn
for i in range(len(self.lst[k])):
ki, vi = self.lst[k][i]
if key == ki:
self.lst[k].pop(i)
return
# Your MyHashMap object will be instantiated and called as such:
# obj = MyHashMap()
# obj.put(key,value)
# param_2 = obj.get(key)
# obj.remove(key)
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
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