随机返还target值的坐标(如果存在多个target).

不太明白为什么这个题是M难度的。

无非是要么弄TABLE之类的,开始麻烦点,但是pick的时候直接PICK出来就行了。
要么开始简单点,都存了,选的时候再随机选。

前者各种溢出。。貌似memory在leetcode比较值钱。。就用后者

public class Solution
{int[] nums;public Solution(int[] nums) {this.nums = nums;}public int pick(int target) {int i = 0;while(nums[i] != target) i++;int start = i;while(i < nums.length && nums[i] == target) i++;Random rdm = new Random();return start + rdm.nextInt(i-start);}
}

有一种思路挺逗的:

public class Solution {int[] nums;Random r;public Solution(int[] nums) {this.nums = nums;r = new Random();}public int pick(int target) {int size = nums.length;int i = r.nextInt(size);while (nums[i] != target) {i = r.nextInt(size);}return i;}
}

无限随机选,选到为止。。。这样确实概率是一样的,不过总觉得很奇怪的样子。。。

转载于:https://www.cnblogs.com/reboot329/p/5868202.html

398. Random Pick Index相关推荐

  1. 398. Random Pick Index - LeetCode

    为什么80%的码农都做不了架构师?>>>    Question 398. Random Pick Index Solution 思路:重点是如果数据中有多个数target相等,要从 ...

  2. leetcode 398. Random Pick Index | 398. 随机数索引(Java)

    题目 https://leetcode.com/problems/random-pick-index/ 题解 常规思路,先用 map 存一串,取的时候从 map 对应的串中随机拿一个就 ok. cla ...

  3. python leetcode 398. Random Pick Index

    奇怪的是蓄水池抽样算法无法AC 代码2是蓄水池抽样 class Solution(object):import randomdef __init__(self, nums):""& ...

  4. LeetCode Random Pick Index(蓄水池抽样算法)

    问题:给出一个数组,存在相同的数,随机输出目标数所在的下标 思路:使用蓄水池抽样算法,当第一次找到目标数时,作为选取.接着如果随机数等于0,则选取.在遍历完后,直接返回选取的值 具体代码参考: htt ...

  5. 710. Random Pick with Blacklist - LeetCode

    为什么80%的码农都做不了架构师?>>>    Question 710. Random Pick with Blacklist Solution 题目大意:给一个N,表示一个范围[ ...

  6. leetcode 528. Random Pick with Weight

    给一个权重的vector,让你根据权重的概率返回值,返回的值是这些权重的索引. 比如给你一个[1,2]的权重矩阵,1/3的概率返回0,2/3的概率返回1. 等概率函数random只能等概率的一系列数, ...

  7. 710. Random Pick with Blacklist 黑名单中的随机数(Hard)

    1. 描述 给定一个包含 [0,n) 中不重复整数的黑名单 blacklist ,写一个函数从 [0, n) 中返回一个不在 blacklist 中的随机整数. 对它进行优化使其尽量少的调用Math. ...

  8. 【LeetCode】528. Random Pick with Weight 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址:https://leetcode.com/problems/random-pi ...

  9. 取得数组中的随机数random.nextInt(index)

    public static void main(String[] args) { int[] tester = {1,2,3,5}; if(tester.length>1){ Random ra ...

最新文章

  1. 无法解决 equal to 操作中 SQL_Latin1_General_CP1_CI_AS 和 Chinese_PRC_CI_AS 之间的排序规则冲突。...
  2. 输入有序数组返回下标
  3. P2012-拯救世界2【EGF】
  4. 前端入门教程(七)CSS属性设置
  5. 的电路接法_基本震荡电路知多少,汇总几种震荡电路的接法!
  6. 输出字符串全排列 c语言,41.输出全排列-题解(C语言代码)
  7. 安川机器人dx200编程手册_【安川 】一文带了解DX200如何编程(上)
  8. JEB2.2.7闪退
  9. eclipse 中使用字符流复制文件乱码解决
  10. 网络安全(加密技术、数字签名、证书)
  11. Python中的timezone
  12. 高斯公式(div:点乘)
  13. layui 上传图片 返回图片地址
  14. 计算机c盘中无法搜索文件格式,电脑C盘中programdata文件夹找不到该怎么办
  15. Java和C++程序员待遇问题
  16. EDA(数据探索性分析)常用分析手段--数据挖掘稍微进阶篇
  17. 计算机常用名词及解释
  18. 中华英才网或被全盘收购:三年对赌将近大限
  19. php 背景图片上加载设备状态,PHP 将动态图片与固定背景图片合成并添加水印。...
  20. iPhone摄像头拍照后图像旋转

热门文章

  1. 【Java Web开发指南】ORM一些基础问题整理
  2. python【力扣LeetCode算法题库】面试题 01.06-字符串压缩
  3. 分分钟入门【Nodejs】—初步了解Nodejs
  4. JAVA怎么创建对象组_java – 如何根据特定字段创建一组有序的对象?
  5. ios php rsa加密解密,php rsa加密解密使用详解
  6. python for循环九九乘法表_python—用for循环、while循环和一句话打印九九乘法表
  7. 使用es6中import和export报错
  8. bat java cp_批处理中Copy与Xcopy命令的区别小结
  9. 网络营销外包专员浅析网络营销外包推广运营效果究竟如何?
  10. 浅析网站地图设置对网站的作用有哪些?