欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

Leetcode 398. 随机数索引 解题思路及C++实现

发布时间:2025/4/16 c/c++ 27 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Leetcode 398. 随机数索引 解题思路及C++实现 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

解题思路:

题目对空间复杂度有要求。在构造函数中,应该要先把nums数组拷贝一下。

在pick函数中,必然要遍历数组nums,这样才能得到 target 值对应的所有索引,之后再生成一个随机数,返回任一索引。

 

class Solution { public:vector<int> nn;Solution(vector<int>& nums) {nn.assign(nums.begin(), nums.end());}int pick(int target) {vector<int> tmp; //用于记录target 对应的所有索引for(int i = 0; i < nn.size(); i++){if(nn[i] == target) tmp.push_back(i);}int n = rand() % tmp.size(); //生成0到tmp.size()-1 之间的一个随机数return tmp[n];} };/*** Your Solution object will be instantiated and called as such:* Solution* obj = new Solution(nums);* int param_1 = obj->pick(target);*/

 

 

 

总结

以上是生活随笔为你收集整理的Leetcode 398. 随机数索引 解题思路及C++实现的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。