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;
    }
};
相关推荐
梦の1 小时前
C++Cherno 学习笔记day21 [86]-[90] 持续集成、静态分析、参数计算顺序、移动语义、stdmove与移动赋值操作符
c++·笔记·学习
夜月yeyue1 小时前
STM32启动流程详解
linux·c++·stm32·单片机·嵌入式硬件·c#
ん贤1 小时前
图论基础理论
c语言·数据结构·c++·算法·图论
Vdeilae2 小时前
QT QCHeckBox 互斥设置方法
c++
末央&3 小时前
【C++】Stack和Queue的底层封装和实现
开发语言·c++
martian6653 小时前
C++异步编程从入门到精通实战:全面指南与实战案例
开发语言·c++·性能优化
青丝挽来生*3 小时前
继承-C++
开发语言·c++
努力学习的小廉3 小时前
【C++】 —— 笔试刷题day_18
开发语言·c++·算法
月亮被咬碎成星星4 小时前
LeetCode[28]找出字符串中第一个匹配项的下标(KMP版本)
算法·leetcode
十五年专注C++开发4 小时前
面试题:C++11在C++98基础上增加了哪些内容?
开发语言·c++·设计模式·面试·stl·适配器模式