C++ | Leetcode C++题解之第398题随机数索引

题目:

题解:

cpp 复制代码
class Solution {
    vector<int> &nums;
public:
    Solution(vector<int> &nums) : nums(nums) {}

    int pick(int target) {
        int ans;
        for (int i = 0, cnt = 0; i < nums.size(); ++i) {
            if (nums[i] == target) {
                ++cnt; // 第 cnt 次遇到 target
                if (rand() % cnt == 0) {
                    ans = i;
                }
            }
        }
        return ans;
    }
};
相关推荐
麦烤楽鸡翅5 分钟前
【模板】二维前缀和 (牛客)
java·c++·算法·秋招·春招·二维前缀和·面试算法题
guguhaohao1 小时前
map和set,咕咕咕!
数据结构·c++
Larry_Yanan1 小时前
QML学习笔记(五十二)QML与C++交互:数据转换——时间和日期
开发语言·c++·笔记·qt·学习·ui·交互
满天星83035772 小时前
【C++】智能指针
c语言·开发语言·c++·visual studio
m0_748248023 小时前
基于 C++ 的高性能批量媒体文件压缩程序
c++·人工智能·数据挖掘
Larry_Yanan3 小时前
QML学习笔记(五十三)QML与C++交互:数据转换——序列类型与 JavaScript 数组的转换
c++·笔记·学习
努力努力再努力wz4 小时前
【Linux进阶系列】:线程(上)
java·linux·运维·服务器·数据结构·c++·redis
仟千意4 小时前
C++:类和对象---初级篇
c++
Brianna Home4 小时前
现代C++:从性能泥潭到AI基石
开发语言·c++·算法
吃着火锅x唱着歌4 小时前
LeetCode 2016.增量元素之间的最大差值
数据结构·算法·leetcode