04. Design HashMap
Last updated
Was this helpful?
Last updated
Was this helpful?
The problem can be found at the following link:
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 the mp
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 the mp
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 Complexity: O(n)
Auxiliary Space Complexity: O(n)
For discussions, questions, or doubts related to this solution, please visit our . 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 repository.