范例(C ++)
让我们看下面的实现以更好地理解-
#include <bits/stdc++.h> using namespace std; class Solution { public: vector <int> v; Solution(vector<int>& nums) { srand(time(NULL)); v = nums; } int pick(int target) { int ret = -1; int cnt = 1; for(int i = 0; i < v.size(); i++){ if(v[i] == target){ if(rand() % cnt++ == 0) ret = i; } } return ret; } }; main(){ vector<int> v = {1,2,3,3,3}; Solution ob(v); cout << (ob.pick(3)); }
Initialize with [1,2,3,3,3] Call pick(3) to get random index positions
输出结果
4 3 4 2