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 array nums.
- int pick(int target) Picks a random index i from nums where nums[i] == target. If there are multiple valid i’s, then each index should have an equal probability of returning.
|
|
Constraints:
- 1 <= nums.length <= 2 * 104
- -2^31 <= nums[i] <= 2^31 - 1
- target is an integer from nums.
- At most 10^4 calls will be made to pick.
Solution
|
|
Solution 2021-01-29 Reservour sampling
|
|