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;
    }
};
相关推荐
不会C语言的男孩38 分钟前
C++ Primer 第3章:字符串、向量和数组
开发语言·c++
code monkey.2 小时前
【Linux之旅】Linux 应用层自定义协议与序列化:从粘包问题到网络计算器
linux·网络·c++
草莓熊Lotso2 小时前
【Linux网络】深入理解 HTTP 协议(二):从协议格式到手写工业级 HTTP 服务器
linux·运维·服务器·网络·c++·http
MC皮蛋侠客10 小时前
C++17 多线程系列(五):C++17 并行算法——从串行到并行的零成本迁移
c++·多线程
_日拱一卒12 小时前
LeetCode:207课程表
java·数据结构·算法·leetcode·职场和发展
郭涤生14 小时前
C++ 高性能编程最佳实践清单
开发语言·c++
.千余15 小时前
【C++】C++类与对象2:C++构造函数、运算符重载与流输入输出全面解析
c语言·开发语言·前端·c++·经验分享
郭涤生15 小时前
C++ 高性能状态机
开发语言·c++
风筝在晴天搁浅15 小时前
美团 LeetCode 692.前K个高频单词
算法·leetcode·职场和发展
酿情师15 小时前
Microsoft Visual C++ Build Tools 2026 下载与安装指南(Windows)
c++·windows·microsoft