Here's the full structure with all operations.
class RandomizedSet:
map = {} // val -> index
arr = []
function insert(val):
if val in map:
return false
map[val] = arr.length
arr.append(val)
return true
function remove(val):
if val not in map:
return false
idx = map[val]
lastVal = arr[arr.length - 1]
arr[idx] = lastVal
map[lastVal] = idx
arr.pop()
delete map[val]
return true
function getRandom():
randIdx = random(0, arr.length - 1)
return arr[randIdx]