398. Random Pick Index - LeetCode
为什么80%的码农都做不了架构师?>>>
Question
398. Random Pick Index
Solution
思路:重点是如果数据中有多个数target相等,要从这些数中随机取一个,根据例题
假设输入是:
int[] nums = new int[]{1, 2, 3, 3, 3};
int target = 3;模拟:
1 != target pass
2 != target pass
3 == target pick的概率 nextInt(1)==0的概率 1,返回这个index的概念是1 - 1/3 -1/3 = 1/3
3 == target pick的概率 nextInt(2)==0的概率 1/2, 返回这个index的概率是1/2 * 2/3 = 1/3
3 == target pick的概率 nextInt(3)==0的概率 1/3, 返回这个index的概率是1/3
Java实现:
class Solution {private int[] nums;private Random random;public Solution(int[] nums) {this.nums = nums;random = new Random();}public int pick(int target) {int index = -1;int count = 0;for (int i=0; i<nums.length; i++) {if (nums[i] == target && random.nextInt(++count) == 0) {index = i;}}return index;}
}/*** Your Solution object will be instantiated and called as such:* Solution obj = new Solution(nums);* int param_1 = obj.pick(target);*/
Reference
- https://gitee.com/okokabcd/leetcode
转载于:https://my.oschina.net/yysue/blog/1830183
398. Random Pick Index - LeetCode相关推荐
- leetcode 398. Random Pick Index | 398. 随机数索引(Java)
题目 https://leetcode.com/problems/random-pick-index/ 题解 常规思路,先用 map 存一串,取的时候从 map 对应的串中随机拿一个就 ok. cla ...
- python leetcode 398. Random Pick Index
奇怪的是蓄水池抽样算法无法AC 代码2是蓄水池抽样 class Solution(object):import randomdef __init__(self, nums):""& ...
- 398. Random Pick Index
随机返还target值的坐标(如果存在多个target). 不太明白为什么这个题是M难度的. 无非是要么弄TABLE之类的,开始麻烦点,但是pick的时候直接PICK出来就行了. 要么开始简单点,都存 ...
- LeetCode Random Pick Index(蓄水池抽样算法)
问题:给出一个数组,存在相同的数,随机输出目标数所在的下标 思路:使用蓄水池抽样算法,当第一次找到目标数时,作为选取.接着如果随机数等于0,则选取.在遍历完后,直接返回选取的值 具体代码参考: htt ...
- 710. Random Pick with Blacklist - LeetCode
为什么80%的码农都做不了架构师?>>> Question 710. Random Pick with Blacklist Solution 题目大意:给一个N,表示一个范围[ ...
- 【LeetCode】528. Random Pick with Weight 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址:https://leetcode.com/problems/random-pi ...
- leetcode 528. Random Pick with Weight
给一个权重的vector,让你根据权重的概率返回值,返回的值是这些权重的索引. 比如给你一个[1,2]的权重矩阵,1/3的概率返回0,2/3的概率返回1. 等概率函数random只能等概率的一系列数, ...
- 710. Random Pick with Blacklist 黑名单中的随机数(Hard)
1. 描述 给定一个包含 [0,n) 中不重复整数的黑名单 blacklist ,写一个函数从 [0, n) 中返回一个不在 blacklist 中的随机整数. 对它进行优化使其尽量少的调用Math. ...
- 取得数组中的随机数random.nextInt(index)
public static void main(String[] args) { int[] tester = {1,2,3,5}; if(tester.length>1){ Random ra ...
最新文章
- 初学ssm框架的信息
- centos6.7 64位环境下部署MySQL-5.7.13
- -Git 使用技巧 总结 MD
- C++中的抽象类以及接口的区别联系
- pikachu安装以及安装时遇到的的问题——pikachu数据库链接不上config.inc.php 以及侧边栏访问没有反应,只有URL加了个#原因和解决办法
- Istio Pilot 源码分析(二)
- Python 算法之递归与尾递归,斐波那契数列以及汉诺塔的实现
- teechart绘制实时曲线_快速学会CAD绘制传输线路图纸
- git 命令详解和常见问题解决
- [转]使用FFmpeg将视频推流到nginx,通过vlc拉流播放(通过命令的方式)
- 1032. 挖掘机技术哪家强(20)-PAT乙级真题
- QT: QTableWidget 表格中按钮槽函数 获取表格该按钮所在的行号信息
- 谷歌 kaptcha 图片验证码
- 基于IR2136的三相电机控制
- 2022年通用航空行业研究报告
- 双ip的oracle集群该怎么连接,如何配置电信联通双线双IP接入
- 天肌处理器天梯排行榜2022 2022天玑处理器天梯图
- android ar 动画,Android实现支付宝AR扫描动画效果
- Redis学习、缓存、持久化、哨兵模式
- 【Linux C】进程、线程和进程间通信
热门文章
- c语言scanf结果在printf前,C语言中的scanf与printf
- 为什么在反向传播中感知器初始值不能为0_人工智能可以为我们做什么?世界皆可二分类...
- 树莓派人脸识别门禁opencv4.2_树莓派人脸识别实际应用:人脸识别门禁
- linux硬件控制流,Linux系统学习笔记:异常控制流
- 孩子数学成绩不好怎么办_孩子数学成绩不好,家长可以这样做
- 自己珍藏一些有趣的Python子程序
- 线上比赛中关于视觉AI组与信标组补充说明
- 如何将代码优雅的放在WORD文档中?
- RASPBERRY PI PICO 开发板 基础测试
- 世界上最美丽的23个公式