#398. Random Pick Index
Given an array of integers 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.
O(n)来完成这个任务。看到每一个target,那么选到的概率就是1/(此时cnt)
那么得到随机选一个,就可以通过在遍历的过程中实现。
int pick(int target)
{
int count = 0, res = -1;
for (int i = 0; i < n.size(); ++i)
{
if(n[i] != target) continue;
if(++count == 1) res = i;
else
if(!(rand()%count)) res = i;
}
return res;
}