04. Design HashMap
The problem can be found at the following link: Question Link
My Approach
Class Declaration:
The
MyHashMap
class is declared.It includes a private data member
mp
, which is a vector of lists of pairs. This data structure will be used to implement a hash map.Another private data member
size
is initialized to 10. This represents the initial size of the hash map.The constructor
MyHashMap
is defined, which resizes themp
vector to the specified size.
Hash Function:
The
hash
method is defined to compute the hash value for a given key. It uses the modulo operation (key % size
) to map keys to a valid index within the range of themp
vector.
put Method:
The
put
method is used to insert a key-value pair into the hash map.It calculates the index
i
using the hash function.It iterates through the list at index
i
using a for loop.Inside the loop, it checks if the key already exists in the list. If it does, it updates the corresponding value and returns.
If the key doesn't exist in the list, it adds a new pair (key, value) to the list.
get Method:
The
get
method is used to retrieve the value associated with a given key from the hash map.It calculates the index
i
using the hash function.It iterates through the list at index
i
using a for loop.Inside the loop, it checks if the key matches the key in the pair. If it finds a match, it returns the corresponding value.
If it doesn't find a match after iterating through the list, it returns -1 to indicate that the key was not found.
remove Method:
The
remove
method is used to delete a key-value pair from the hash map.It calculates the index
i
using the hash function.It iterates through the list at index
i
using a for loop.Inside the loop, it checks if the key matches the key in the pair. If it finds a match, it removes that pair from the list using the
erase
method and returns, effectively deleting the key-value pair.
Time and Auxiliary Space Complexity
Time Complexity:
O(n)
Auxiliary Space Complexity:
O(n)
Code (C++)
Contribution and Support
For discussions, questions, or doubts related to this solution, please visit our discussion section. We welcome your input and aim to foster a collaborative learning environment.
If you find this solution helpful, consider supporting us by giving a ⭐ star
to the rishabhv12/Daily-Leetcode-Solution repository.
Last updated