398. Random Pick Index
Problem description:
Given an integer array nums
with possible duplicates, randomly output the index of a given target
number. You can assume that the given target number must exist in the array.
Implement the Solution
class:
Solution(int[] nums)
Initializes the object with the arraynums
.int pick(int target)
Picks a random indexi
fromnums
wherenums[i] == target
. If there are multiple valid i’s, then each index should have an equal probability of returning.
Example 1:
1 | Input |
Constraints:
1 <= nums.length <= 2 * 104
231 <= nums[i] <= 231 - 1
target
is an integer fromnums
.- At most
104
calls will be made topick
.
Solution:
Store all the index of the numbers in dictionary
randomly choose one of the index in pick()
1 | class Solution: |
time complexity: $O()$
space complexity: $O()$
reference:
related problem: