Search⌘ K
AI Features

Solution: Insert Delete GetRandom O(1)

Explore how to design a custom data structure that supports Insert, Delete, and GetRandom functions in average constant time. Understand the hybrid approach combining arrays with hash maps to achieve efficient lookups and deletions. This lesson guides you through the implementation and analysis of time and space complexities to optimize the solution.

Statement

Implement a Random Set data structure that can perform the following operations:

  • Init(): This initializes the Random Set object.
  • Insert(): This function takes an integer, data, as its parameter and, if it does not already exist in the set, add it to the set, returning TRUE. If the integer already exists in the set, the function returns FALSE.
  • Delete(): This function takes an integer, data, as its parameter and, if it exists in the set, removes it, returning TRUE. If the integer does not exist in the set, the function returns FALSE.
  • GetRandom(): This function takes no parameters. It returns an integer chosen at random from the set.

Note: Your implementation should aim to have a running time of O(1)O(1) (on average) for each operation.

Constraints:

  • 231-2^{31} \leq data 231\leq 2^{31}
  • No more than 2×1052 \times 10^5
...