380. Insert Delete GetRandom O(1) ๐ฒ
Difficulty: Medium
- Tags: Design
, Hash Table
, Randomized
Description
Implement the RandomizedSet
class:
RandomizedSet()
Initializes theRandomizedSet
object.bool insert(int val)
Inserts an itemval
into the set if not present. Returnstrue
if the item was not present,false
otherwise.bool remove(int val)
Removes an itemval
from the set if present. Returnstrue
if the item was present,false
otherwise.int getRandom()
Returns a random element from the current set of elements (it's guaranteed that at least one element exists when this method is called). Each element must have the same probability of being returned.
You must implement the functions of the class such that each function works in average O(1) time complexity.
Examples
Example 1:
Input:
Output:
Explanation:
Solution ๐ก
Use a hash map to store the elements and their indices in an array. This allows O(1) time complexity for insertion, deletion, and getting a random element.
Java
Time Complexity โณ
insert
operation: O(1)remove
operation: O(1)getRandom
operation: O(1)
Space Complexity ๐พ
The space complexity is O(n), where
n
is the number of elements in the set, due to the storage in the hash map and the list.
You can find the full Solution.java
file here.
Last updated