题目

https://leetcode.com/problems/random-pick-index/

题解

常规思路,先用 map 存一串,取的时候从 map 对应的串中随机拿一个就 ok。

class Solution {private Map<Integer, List<Integer>> map;private Random r;public Solution(int[] nums) {r = new Random();map = new HashMap<>();for (int i = 0; i < nums.length; i++) {if (!map.containsKey(nums[i])) {map.put(nums[i], new ArrayList<>());}map.get(nums[i]).add(i);}}public int pick(int target) {int size = map.get(target).size();return map.get(target).get(r.nextInt(size));}
}/*** Your Solution object will be instantiated and called as such:* Solution obj = new Solution(nums);* int param_1 = obj.pick(target);*/

leetcode 398. Random Pick Index | 398. 随机数索引(Java)相关推荐

  1. 398. Random Pick Index - LeetCode

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

  2. python leetcode 398. Random Pick Index

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

  3. 398. Random Pick Index

    随机返还target值的坐标(如果存在多个target). 不太明白为什么这个题是M难度的. 无非是要么弄TABLE之类的,开始麻烦点,但是pick的时候直接PICK出来就行了. 要么开始简单点,都存 ...

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

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

  5. leetcode 528. Random Pick with Weight

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

  6. Leetcode 398.随机数索引

    原题链接:Leetcode 398. Random Pick Index Given an integer array nums with possible duplicates, randomly ...

  7. leetcode刷题记录-398. 随机数索引

    前言 今天的题目为中等,跟之前碰到过的一道题思路很相似,利用map表来空间换时间,以此来做到节省时间复杂度. 每日一题 今天的题目是 398. 随机数索引,难度为中等 给你一个可能含有 重复元素 的整 ...

  8. Java实现 LeetCode 398 随机数索引

    398. 随机数索引 给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引. 您可以假设给定的数字一定存在于数组中. 注意: 数组大小可能非常大. 使用太多额外空间的解决方案将不会通过测试 ...

  9. LeetCode系列398—随机数索引(蓄水池抽样)

    题意 给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引. 您可以假设给定的数字一定存在于数组中. 注意: 数组大小可能非常大. 使用太多额外空间的解决方案将不会通过测试. 示例: in ...

最新文章

  1. jquery操作select option使用小结
  2. 浅谈python函数签名
  3. 短短30分钟!计算机轻松判断J. K. 罗琳隐姓埋名写新作
  4. C# ToString()和Convert.ToString()的区别【转】
  5. 从输入 URL 到页面加载完的过程中都发生了什么事情?
  6. linux 查看libevent 安装目录,Linux系统centos6.7上安装libevent
  7. Ps 初学者教程,如何让照片成为手绘美图?
  8. NSString字符串处理
  9. 校园卡管理系统c语言代码,基于C++的校园一卡通管理系统
  10. Windows系统安装Mysql前运行库依赖
  11. CCNA考试题库中英文翻译版及答案16
  12. 2023年东南大学机械工程考研考情与难度、参考书上岸前辈备考经验
  13. Android 视频直播的流程总览
  14. 真正厉害的人,早戒掉了情绪
  15. 搭配emuc-b202 can卡通讯时,时断时续
  16. 【C语言】C语言之数字金字塔全家桶
  17. 区块链与联邦学习综述
  18. cad怎么将图层后置_CAD中如何将某一个图层置于其他图层之上???
  19. 百度DMA+小度App的蓝牙语音解决方案入局
  20. Spring Boot 使用 QQ邮箱发邮件

热门文章

  1. HUST - 1016 幼儿园小朋友们的难题(水题)
  2. 2019ICPC(南京) - Holy Grail(最短路)
  3. Keras-训练可视化
  4. 开源oracle client,oracle client安装与配置
  5. SlopOne推荐算法
  6. 差分约束系统之Bellman_Ford与Spfa判断负权回路
  7. HOOK -- IAT HOOK 本进程MessageBox
  8. c++异常Try catch
  9. mediasoup-demo 运行实战
  10. 第32讲:实时处理利器 mitmproxy 的使用