题目
算法
* 水塘抽样
代码
class Solution {
public:
Solution(vector<int> nums): v(nums) {}
int pick(int target) {
int cnt = 0, res = -1;
for (int i = 0; i < v.size(); ++i) {
if (v[i] != target) continue;
++cnt;
if (rand() % cnt == 0) res = i;
}
return res;
}
private:
vector<int> v;
};