leetcode 398. Random Pick Index | 398. 随机数索引(Java)
题目
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)相关推荐
- 398. Random Pick Index - LeetCode
为什么80%的码农都做不了架构师?>>> Question 398. Random Pick Index Solution 思路:重点是如果数据中有多个数target相等,要从 ...
- 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 ...
- leetcode 528. Random Pick with Weight
给一个权重的vector,让你根据权重的概率返回值,返回的值是这些权重的索引. 比如给你一个[1,2]的权重矩阵,1/3的概率返回0,2/3的概率返回1. 等概率函数random只能等概率的一系列数, ...
- Leetcode 398.随机数索引
原题链接:Leetcode 398. Random Pick Index Given an integer array nums with possible duplicates, randomly ...
- leetcode刷题记录-398. 随机数索引
前言 今天的题目为中等,跟之前碰到过的一道题思路很相似,利用map表来空间换时间,以此来做到节省时间复杂度. 每日一题 今天的题目是 398. 随机数索引,难度为中等 给你一个可能含有 重复元素 的整 ...
- Java实现 LeetCode 398 随机数索引
398. 随机数索引 给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引. 您可以假设给定的数字一定存在于数组中. 注意: 数组大小可能非常大. 使用太多额外空间的解决方案将不会通过测试 ...
- LeetCode系列398—随机数索引(蓄水池抽样)
题意 给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引. 您可以假设给定的数字一定存在于数组中. 注意: 数组大小可能非常大. 使用太多额外空间的解决方案将不会通过测试. 示例: in ...
最新文章
- jquery操作select option使用小结
- 浅谈python函数签名
- 短短30分钟!计算机轻松判断J. K. 罗琳隐姓埋名写新作
- C# ToString()和Convert.ToString()的区别【转】
- 从输入 URL 到页面加载完的过程中都发生了什么事情?
- linux 查看libevent 安装目录,Linux系统centos6.7上安装libevent
- Ps 初学者教程,如何让照片成为手绘美图?
- NSString字符串处理
- 校园卡管理系统c语言代码,基于C++的校园一卡通管理系统
- Windows系统安装Mysql前运行库依赖
- CCNA考试题库中英文翻译版及答案16
- 2023年东南大学机械工程考研考情与难度、参考书上岸前辈备考经验
- Android 视频直播的流程总览
- 真正厉害的人,早戒掉了情绪
- 搭配emuc-b202 can卡通讯时,时断时续
- 【C语言】C语言之数字金字塔全家桶
- 区块链与联邦学习综述
- cad怎么将图层后置_CAD中如何将某一个图层置于其他图层之上???
- 百度DMA+小度App的蓝牙语音解决方案入局
- Spring Boot 使用 QQ邮箱发邮件