Advertisement
smj007

Untitled

Mar 5th, 2024
1,016
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.48 KB | None | 0 0
  1. class Node:
  2.     def __init__(self, key, value):
  3.         self.key = key
  4.         self.value = value
  5.         self.next = None
  6.  
  7. HASH_NUM = 2069
  8.  
  9. class MyHashMap:
  10.  
  11.     def __init__(self):
  12.         self.tables = [None]*HASH_NUM
  13.        
  14.     def put(self, key: int, value: int) -> None:
  15.         table = self.tables[key % HASH_NUM]  
  16.  
  17.         if not table:
  18.             self.tables[key % HASH_NUM] = Node(key, value)
  19.             return
  20.  
  21.         current = table
  22.         while current:
  23.             if current.key == key:
  24.                 current.value = value
  25.                 return
  26.             if not current.next:
  27.                 current.next = Node(key, value)
  28.                 return
  29.             current = current.next
  30.  
  31.         return
  32.  
  33.     def get(self, key: int) -> int:
  34.         table = self.tables[key % HASH_NUM]
  35.         if table:
  36.             current = table
  37.             while current:
  38.                 if key == current.key:
  39.                     return current.value
  40.                 current = current.next
  41.             return -1
  42.         return -1
  43.        
  44.  
  45.     def remove(self, key: int) -> None:
  46.         current = self.tables[key % HASH_NUM]
  47.         prev = None
  48.         while current:
  49.             if current.key == key:
  50.                 if not prev:
  51.                     self.tables[key % HASH_NUM] = current.next
  52.                 else:
  53.                     prev.next = current.next
  54.                 return
  55.  
  56.             prev = current
  57.             current = current.next
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement