Design a data structure that supports all following operations in O(1) Time

insert(Num): Inserts a Num to the set if not already present.

remove(Num): Removes a Num from the set if present.

getRandom: Returns a random element from current set of elements

**Example:**

Set set = new Set();

// Inserts 5 to the set. Returns true as 5 was inserted successfully.

set.insert(5); – O(1) Time

// Inserts 6 to the set, returns true. Set now contains [5,6].

set.insert(6);

// getRandom should return either 5 or 6 randomly.

randomSet.getRandom(); – O(1) Time

// Removes 5 from the set, returns true. Set now contains [6].

randomSet.remove(5); – O(1) Time

Hint1: For Finding Random Number Module operator with the size of the set

Hint2: Hashmap takes O(1) time in Get() and Put() Operation

Problem level: **Medium**