DIY: Insert Delete GetRandom O(1) - Duplicates Allowed
Solve the interview question "Insert Delete GetRandom O(1) - Duplicates Allowed" in this lesson.
We'll cover the following
Problem statement
Implement a set data structure that allows duplicates and can perform the following operations:
insert(data)
: This function should insertdata
into the set (if the set does not contain it already). It should returnFalse
if thedata
already exists in the set. Otherwise, it should returnTrue
.remove(data)
: If thedata
is present, this function should removedata
from the set and returnTrue
. If thedata
does not exist in the set, the function should returnFalse
.get_random()
: This function should return a random element from the set in constant time.
Note: Your implementation should aim for constant running time (on average) for each operation.
Constraints
- <=
value
<= - At most calls in total will be made to
insert()
,remove()
, andget_random()
. - There will be at least one element in the data structure to call
get_random()
.
Input
You will insert, delete and get the random values using the insert()
, remove()
,and get_random()
methods of the class respectively. Let’s see how to insert, delete and get the random values below:
insert(1)
insert(1)
insert(2)
get_random()
remove(1)
remove(1)
insert(1)
insert(2)
insert(3)
get_random()
remove(2)
remove(2)
Output
The following is the output of the above input:
True
False
True
1 or 2
True
True
True
False
True
1 or 2 or 3
True
True
Coding exercise
Implement the RandomizedCollection
class and initialize its empty object. Create three methods insert()
, remove()
, and get_random()
of RandomizedCollection
class. The insert()
and remove()
methods return True or False, and the get_random()
method return integer number.
Level up your interview prep. Join Educative to access 80+ hands-on prep courses.