public class Solution {
private int[] nums;
private Random random;
public Solution(int[] nums) {
this.nums=nums;
random=new Random();
}
public int pick(int target) {
int count=0;//target 计数
int result=0;
for(int i=0;i<nums.length;i++)
{
if(nums[i]!=target)
continue;
else
{
if(random.nextInt(++count)==0)
/*
对于n th target ++count=n random.nextInt(count)==0 的概率为1/n
对于n-1 th target
概率为 (n-1)/n*1/(n-1)=1/n
*/
result=i;
}
}
return result;
}
}
398. Random Pick Index
最新推荐文章于 2024-02-27 06:01:38 发布