美文网首页
Random Pick Index (Leetcode 398)

Random Pick Index (Leetcode 398)

作者: stepsma | 来源:发表于2016-11-18 05:48 被阅读0次

    这道题是一道时间换空间的题,用map来保存index过不了大数据。想考水塘抽样的原理(Reservoir sampling)

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

    相关文章

      网友评论

          本文标题:Random Pick Index (Leetcode 398)

          本文链接:https://www.haomeiwen.com/subject/qdyjpttx.html