Simple Python solution

  • 0

    Step 1: define an empty list ,self.r = []

    Step 2: iterate through the array and search for indices where the value matches target

    Step 3: append these indices into empty list, self.r

    Step 4: pick a random element from the list, using randint function.

    Step 5: reset self.r=[], incase this function is used twice. i.e for one object, [1,2,3,3,3,4,4,4,4] the user can run function the functopm twice.
    for example:

    s = Solution([0,1,2,3,3,3])
    print s.pick(3)
    print s.pick(4)            


    from random import randint
    class Solution(object):
        def __init__(self, nums):
            :type nums: List[int]
            :type numsSize: int
            self.nums = nums
            self.numsSize = len(nums)
            self.r = []
        def pick(self, target):
            :type target: int
            :rtype: int
            for i in xrange(self.numsSize):
                if self.nums[i] == target:
            x = self.r[randint(0,len(self.r)-1)]
            self.r = []
            return x

Log in to reply

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.