classSolution{privateMap<Integer,List<Integer>> records =newHashMap<>();privateRandom random;publicSolution(int[] nums){for(int i =0; i < nums.length; i++){List<Integer> record = records.getOrDefault(nums[i],newArrayList<>());
record.add(i);
records.put(nums[i], record);}
random =newRandom();}publicintpick(int target){List<Integer> record = records.get(target);return record.get(random.nextInt(record.size()));}}
方法二:
classSolution{privateRandom random;privateint[] nums;publicSolution(int[] nums){this.nums = nums;
random =newRandom();}publicintpick(int target){int ans =0;int cnt =0;for(int i =0; i < nums.length; i++){if(nums[i]== target){++cnt;if(random.nextInt(cnt)==0){
ans = i;}}}return ans;}}
考查数学概率题目方法一:class Solution { private Map<Integer, List<Integer>> records = new HashMap<>(); private Random random; public Solution(int[] nums) { for (int i = 0; i < nums.length; i++) {