Donate. I desperately need donations to survive due to my health

Get paid by answering surveys Click here

Click here to donate

Remote/Work from Home jobs

380. Insert Delete GetRandom O(1)

As far as I know, the pop method of hash-set in python is supposed to pop off a random element, so could someone tell me why the getRandom function in my solution doesn't work properly?

This is the link of original question: https://leetcode.com/problems/insert-delete-getrandom-o1/description/

This is my original solution:

class RandomizedSet:

def __init__(self):
    """
    Initialize your data structure here.
    """
    self.res = set()

def insert(self, val):
    """
    Inserts a value to the set. Returns true if the set did not already contain the specified element.
    :type val: int
    :rtype: bool
    """
    temp = len(self.res)
    self.res.add(val)
    l = len(self.res)
    if l != temp:
        return True
    else:
        return False

def remove(self, val):
    """
    Removes a value from the set. Returns true if the set contained the specified element.
    :type val: int
    :rtype: bool
    """
    if val in self.res:
        self.res.remove(val)
        return True
    else:
        return False

def getRandom(self):
    """
    Get a random element from the set.
    :rtype: int
    """
    temp = self.res.pop()
    self.res.add(temp)
    return temp

# Your RandomizedSet object will be instantiated and called as such:
# obj = RandomizedSet()
# param_1 = obj.insert(val)
# param_2 = obj.remove(val)
# param_3 = obj.getRandom()

enter image description here

Comments