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;
    }
};
相关推荐
Han.miracle1 分钟前
数据结构二叉树——层序遍历&& 扩展二叉树的左视图
java·数据结构·算法·leetcode
property-18 分钟前
C++中#define和const的区别
开发语言·c++
怎么没有名字注册了啊1 小时前
查找成绩(数组实现)
c++·算法
AI+程序员在路上3 小时前
QT6中Combo Box与Combo BoxFont 功能及用法
c++·qt
L_09073 小时前
【Algorithm】Day-4
c++·算法·leetcode
代码充电宝3 小时前
LeetCode 算法题【简单】20. 有效的括号
java·算法·leetcode·面试·职场和发展
海琴烟Sunshine3 小时前
leetcode 119. 杨辉三角 II python
算法·leetcode·职场和发展
煜3643 小时前
C++异常与智能指针
开发语言·c++
光头闪亮亮4 小时前
ZBar 环境搭建与快速入门指南
c++
闭着眼睛学算法4 小时前
【双机位A卷】华为OD笔试之【模拟】双机位A-新学校选址【Py/Java/C++/C/JS/Go六种语言】【欧弟算法】全网注释最详细分类最全的华子OD真题题解
java·c语言·javascript·c++·python·算法·华为od