Skip to content

Instantly share code, notes, and snippets.

@Fiewor
Created November 23, 2024 14:00
Show Gist options
  • Select an option

  • Save Fiewor/16c2d090c2c1e72062bb44f7188c6e34 to your computer and use it in GitHub Desktop.

Select an option

Save Fiewor/16c2d090c2c1e72062bb44f7188c6e34 to your computer and use it in GitHub Desktop.
Optimized interview code
# https://leetcode.com/problems/insert-delete-getrandom-o1/
def __init__(self):
self.arr = []
self.map = {}
def insert(self, val: int) -> bool:
if val in self.arr:
return False
self.arr.append(val)
self.map[val] = len(self.arr) - 1
return True
def remove(self, val: int) -> bool:
if val not in self.arr:
return False
val_ind = self.map[val]
last_val = self.arr[-1]
self.arr[-1] = val
self.arr[val_ind] = last_val
self.map[last_val] = val_ind
self.arr.pop()
del self.map[val]
return True
def getRandom(self) -> int:
if len(self.arr) > 0:
return self.arr[random.randrange(len(self.arr))]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment