Skip to content

Commit ddd9b13

Browse files
authored
Create 0706-design-hashmap.py
1 parent 52aa116 commit ddd9b13

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

0706-design-hashmap.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
class ListNode:
2+
def __init__(self, key=-1, val=-1, next=None):
3+
self.key = key
4+
self.val = val
5+
self.next = next
6+
7+
class MyHashMap:
8+
def __init__(self):
9+
self.map = [ListNode() for i in range(1000)]
10+
11+
def hashcode(self, key):
12+
return key % len(self.map)
13+
14+
def put(self, key: int, value: int) -> None:
15+
cur = self.map[self.hashcode(key)]
16+
while cur.next:
17+
if cur.next.key == key:
18+
cur.next.val = value
19+
return
20+
cur = cur.next
21+
cur.next = ListNode(key, value)
22+
23+
def get(self, key: int) -> int:
24+
cur = self.map[self.hashcode(key)].next
25+
while cur and cur.key != key:
26+
cur = cur.next
27+
if cur:
28+
return cur.val
29+
return -1
30+
31+
def remove(self, key: int) -> None:
32+
cur = self.map[self.hashcode(key)]
33+
while cur.next and cur.next.key != key:
34+
cur = cur.next
35+
if cur and cur.next:
36+
cur.next = cur.next.next

0 commit comments

Comments
 (0)