题目链接:https://leetcode-cn.com/problems/random-pick-index/
题目如下:
class Solution {
public:
vector vtr;
Solution(vector& nums) {
vtr=nums;
}
//水塘抽样算法
//取内容时:遍历数组,第i次遇到值为target的元素时,随机选择区间[0,i)内的一个整数,如果为0,则返回该元素的下标,否则返回值不变
int pick(int target) {
int cnt=0;
int res=0;
for(int i=0;i
if(vtr[i]==target){
cnt++;
if(rand()%cnt==0) res=i;
}
}
return res;
}
};



