Design HashMap

ArrayHash TableLinked ListDesignHash Function
https://leetcode.com/problems/design-hashmap

# 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