398. Random Pick Index
不定期更新leetcode解题java答案。
采用pick one的方式选择题目。
题意为构造一个新类,拥有两个功能,其一为构造函数,用于存储数组(可能有重复值),另一个为寻找目标值的数组位置。要求寻找的目标若干位置拥有等可能的随机返回。
同简单的搜寻数组类似,只是加一个随机输出的功能,具体代码如下:
1 public class Solution { 2 int[] arr; 3 public Solution(int[] nums) { 4 arr = new int[nums.length]; 5 for(int i = 0; i < nums.length; i++) 6 arr[i] = nums[i]; 7 } 8 9 public int pick(int target) { 10 ArrayList<Integer> list = new ArrayList(); 11 for(int i = 0; i < arr.length; i++) 12 if(arr[i] == target) 13 list.add(i); 14 if(list.size() == 0) 15 return -1; 16 else{ 17 int random = (int) (Math.random() * list.size()); 18 return list.get(random); 19 } 20 } 21 } 22 23 /** 24 * Your Solution object will be instantiated and called as such: 25 * Solution obj = new Solution(nums); 26 * int param_1 = obj.pick(target); 27 */