Design a hashset
Design a HashSet without using any built-in hash table libraries.
Implement the following public functions :
1) Constructor: It initializes the data members as required.
2) add(value): It inserts an element into the HashSet. The function takes one argument which is the value that needs to be added and returns nothing
3) contains(value): It checks whether the element exists in the HashSet or not. The function takes one argument which is the value that needs to be searched for in the HashSet. The function returns true if the element exists, otherwise returns false.
4) remove(value): It removes an element from the HashSet. The function takes one argument which is the value that needs to be removed from the HashSet and returns the element which is being removed. If the element does not exist in the HashSet or if HashSet is empty, return -1.
Operations Performed on the HashSet:
Query-1 (Denoted by an integer 1)- Inserts an element in the HashSet
Query-2 (Denoted by an integer 2)- Returns a boolean value denoting whether the element is present in the HashSet or not.
Query-3 (Denoted by an integer 3)- Removes the element from the HashSet.
Input format:
The first line of input contains an integer ‘Q’ denoting the number of queries.
The next ‘Q’ lines represent the queries that need to be performed.
Each query case contains two integers, two integers separated by a single space, representing the type of the operation, and a value on which operation needs to be performed.
Output format
For Query 1, you do not need to return anything.
For Query 2, return true or false depending upon whether the element is present or not.
For Query 3, return the element which is being removed from the HashSet.
Note:
You do not need to print anything; it has already been taken care of. Just implement the given function.
Constraints:
1 <= Q <= 10^3
1 <= query type <= 3
0 <= VALUE <= 10^6
Where ‘Q’ is the total number of queries, ‘value’ is the element that will be added, removed, or whose existence in the HashSet is to be checked.
Time limit: 1 second
CodingNinjas
author
2y
I knew that HashSet uses O(1) time to search an element in the list. Also, the word ' Hash' in HashSet helped me to come up with the solution, to use hash table that can help solve the problem efficie...read more
CodingNinjas
author
2y
Chained Hashing Approach
The idea is to store the elements in the hash table to reduce the space. To avoid a collision, chaining is used.
- Make a hash table of size 1000.
- For the addition of a value to a...read more
CodingNinjas
author
2y
List Based Approach
The idea is to use a vector to act as a HashSet. All three operations are performed using the vector.
- Create a vector/list.
- To add an element, push the element to the vector.
- To check...read more
CodingNinjas
author
2y
Mark the elements
The idea is to use a boolean vector of size 10^6 to mark the elements in the HashSet.
- Initialize a boolean vector of size 10^6(size of the queries) with false. Call it ‘HASH’.
- For add ...read more
Add answer anonymously...
Top Goldman Sachs Software Analyst interview questions & answers
Popular interview questions of Software Analyst
>
Goldman Sachs Software Analyst Interview Questions
Stay ahead in your career. Get AmbitionBox app
Helping over 1 Crore job seekers every month in choosing their right fit company
65 L+
Reviews
4 L+
Interviews
4 Cr+
Salaries
1 Cr+
Users/Month
Contribute to help millions
Get AmbitionBox app