// 380. Insert Delete Getrandom O 1
Explore on LeetCode
380_insert_delete_getrandom_o_1.rb
# frozen_string_literal: true
class RandomizedSet def initialize @values = [] @presences = {} @rand = 0 end
# :type val: Integer # :rtype: Boolean def insert(val) if @presences.key? val false else @presences[val] = @values.length @values.push(val) true end end
# :type val: Integer # :rtype: Boolean def remove(val) if @presences.key?(val) index = @presences.delete val if index == @values.length - 1 @values.pop else last = @values.pop @presences[last] = index @values[index] = last end true else false end end
# :rtype: Integer def get_random @values[rand(0...@values.length)] endend
# Your RandomizedSet object will be instantiated and called as such:# obj = RandomizedSet.new()# param_1 = obj.insert(val)# param_2 = obj.remove(val)# param_3 = obj.get_random()