[leetcode] 398. Random Pick Index
2024-10-19 00:19:39
看到这道题,想到做的几道什么洗牌的题,感觉自己不是很熟,但也就是rand()函数的调用,刚开始用map<int, vector<int >>来做,tle,后来就想着直接保存nums数组,和每个元素的数目,然后先生成一个随机的第几个target,然后从nums里面再找这个index,交了,就过了,有套路么?
class Solution {
public:
map<int, int> m;
vector<int> num;
Solution(vector<int> nums) {
num = nums;
for (int i = 0; i < nums.size(); i++) {
m[nums[i]]++;
}
srand( (unsigned)time( NULL ) );
}
int pick(int target) {
int t = m[target];
int index = rand() % t + 1;
t = 0;
for (int i = 0; i < num.size(); i++) {
if(num[i] == target) {
t++;
if(t == index) {
return i;
}
}
}
return 0;
}
};
最新文章
- web音乐播放器总结
- php实现中文转数字,实现方式很智能很php
- WAL
- HTML/CSS的学习过程一览
- Linux 学习之路:read,array,declare
- DevExpress VCL 一键安装工具
- 3.linux安装vsftpd服务
- 深入分析 Java 中的中文编码问题--转
- 下拉菜单中的Option对象
- 【Alpha阶段】第六次scrum meeting
- input选择框样式修改与自定义
- Gson解析Json数组
- Perl IO:随机读写文件
- webapi 统一处理时间格式
- xib view frame 大小调整
- 【BZOJ3551】【BZOJ3545】 【ONTAK2010】 Peaks (kruskal重构树+主席树)
- HDP对应的各组件的版本信息
- Maven java.lang.OutOfMemeoryError 问题
- [翻译] MJParallaxCollectionView
- location 符号
热门文章
- HDU 2199 Can you solve this equation? (二分 水题)
- DONET三层架构开发初步
- 【转】Android studio 导入github工程
- c/c++中使用指针需要注意的问题
- Spring技术内幕:Spring AOP的实现原理(二)
- android 基于百度地图api开发定位以及获取详细地址
- css固定表格表头(各浏览器通用)
- [Practical Git] Format commit history with git log arguments
- VC depends使用说明
- 《Linux内核修炼之道》 之 高效学习Linux内核