功能描述:给你一个可能含有 重复元素 的整数数组 nums ,请你随机输出给定的目标数字 target 的索引。你可以假设给定的数字一定存在于数组中。
具体的代码实现:
class Solution {
Map<Integer,List<Integer>> map ;
Random random ;
public Solution(int[] nums) {
map = new HashMap<>() ;
random = new Random() ;
for(int i=0;i<nums.length;i++){
map.putIfAbsent(nums[i],new ArrayList<>()) ;
map.get(nums[i]).add(i) ;
}
}
public int pick(int target) {
List<Integer> arr = map.get(target) ;
return arr.get(random.nextInt(arr.size())) ;
}
}