← All questions
MediumCoding

Insert Delete GetRandom O(1)

Asked atAmazonDED. E. Shaw & Co
1Give yourself 5 minutes
2Answer out loud, not in your head
3Then compare with the answer below
0
Stuck? Show a way to structure it+
  1. 01Pair an array with an index map
  2. 02Reject duplicate inserts
  3. 03Swap target with final array item on delete
  4. 04Repair the moved index
  5. 05Sample an integer index uniformly

Reference answer

Then expect these follow-ups

  • How would you make this thread-safe?

    Tests: follow-up reasoning

  • Why is a linked list unsuitable for getRandom?

    Tests: correctness reasoning

Free to read · better with Enzo

Practice this out loud with Enzo

Enzo runs it as a mock interview, pushes back with follow-ups, and grades you on the rubric.

Next question