398. Random Pick Index

https://leetcode.com/problems/random-pick-index/description/

Reservoir Sampling

class Solution {
public:
    vector<int> m;
    Solution(vector<int> nums) {
        m = nums;
    }
    
    int pick(int target) {
        int res = -1;
        for (int i = 0, cnt = 0; i < m.size(); i++) {
            if (m[i] == target) {
                cnt++;
                if (rand() % cnt == 0)
                    res = i;
            }
        }
        return res;
    }
};

 

posted @ 2018-05-06 14:53  JTechRoad  阅读(84)  评论(0编辑  收藏  举报