LeetCode 398 Random Pick Index

返回一个目标值的索引,如果存在多个相同的目标值,则等概率随机返回其中一个

标签:数学类题目LeetCode发布于:编辑于:浏览量:1379

概述

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

暴力解

遍历数组,将每个 target 对应的 idx 存入哈希表。

class Solution {
public:
    unordered_map<int, vector<int>> m;
    Solution(vector<int>& nums) {
        for (int i = 0; i < nums.size(); i++) m[nums[i]].push_back(i);
    }
    
    int pick(int target) {
        int r = rand() % m[target].size();
        return m[target][r];
    }
};