710. Random Pick with Blacklist - LeetCode
为什么80%的码农都做不了架构师?>>>
Question
710. Random Pick with Blacklist
Solution
题目大意:给一个N,表示一个范围[0,N),给一个黑名单列表blacklist,其中blacklist中的元素在[0,N)范围内,调用pick方法的时候随机返回一个数,这个数满足
- 在[0,N)范围
- 不在blacklist内
- 要随机
思路:构造一个集合M,该M是 [0,N) - blacklist 的一个集合,调用pick时,返回[0,M)的一个随机数并根据这个随机数从集合M中取数即可。
Java实现:
class Solution {int M;Map<Integer, Integer> map;Random r;public Solution(int N, int[] blacklist) {M = N - blacklist.length;map = new HashMap<>();r = new Random();for (int tmp : blacklist) {map.put(tmp, -1);}for (int tmp : blacklist) {if (tmp < M) {while (map.containsKey(N-1)) {N--;}map.put(tmp, --N);}}}public int pick() {// random in [0,N) not in blacklistint p = r.nextInt(M);if (map.containsKey(p)) return map.get(p);return p;}
}/*** Your Solution object will be instantiated and called as such:* Solution obj = new Solution(N, blacklist);* int param_1 = obj.pick();*/
转载于:https://my.oschina.net/yysue/blog/1846164
710. Random Pick with Blacklist - LeetCode相关推荐
- 710. Random Pick with Blacklist 黑名单中的随机数(Hard)
1. 描述 给定一个包含 [0,n) 中不重复整数的黑名单 blacklist ,写一个函数从 [0, n) 中返回一个不在 blacklist 中的随机整数. 对它进行优化使其尽量少的调用Math. ...
- 398. Random Pick Index - LeetCode
为什么80%的码农都做不了架构师?>>> Question 398. Random Pick Index Solution 思路:重点是如果数据中有多个数target相等,要从 ...
- leetcode 398. Random Pick Index | 398. 随机数索引(Java)
题目 https://leetcode.com/problems/random-pick-index/ 题解 常规思路,先用 map 存一串,取的时候从 map 对应的串中随机拿一个就 ok. cla ...
- LeetCode Random Pick Index(蓄水池抽样算法)
问题:给出一个数组,存在相同的数,随机输出目标数所在的下标 思路:使用蓄水池抽样算法,当第一次找到目标数时,作为选取.接着如果随机数等于0,则选取.在遍历完后,直接返回选取的值 具体代码参考: htt ...
- 【LeetCode】528. Random Pick with Weight 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址:https://leetcode.com/problems/random-pi ...
- python leetcode 398. Random Pick Index
奇怪的是蓄水池抽样算法无法AC 代码2是蓄水池抽样 class Solution(object):import randomdef __init__(self, nums):""& ...
- leetcode 528. Random Pick with Weight
给一个权重的vector,让你根据权重的概率返回值,返回的值是这些权重的索引. 比如给你一个[1,2]的权重矩阵,1/3的概率返回0,2/3的概率返回1. 等概率函数random只能等概率的一系列数, ...
- 398. Random Pick Index
随机返还target值的坐标(如果存在多个target). 不太明白为什么这个题是M难度的. 无非是要么弄TABLE之类的,开始麻烦点,但是pick的时候直接PICK出来就行了. 要么开始简单点,都存 ...
- leetcode 题解 (500-1000题,持续更新,part 2)
part1(1-500), part3(1000-*) 502. IPO 题意:给定k,w,profits数组和capital数组.k表示最多可完成的任务数.w是初始资本.profits是各个任务的收 ...
最新文章
- tensorflow函数API总结
- 【更新链接】U盘启动制作工具(UDTOOL) v3.0.2014.0427
- Netty学习笔记(一)Netty客户端源码分析
- redis中几种数据存储方式的比较
- 安装secureCRT提示sorry的解决办法
- php课后题,知到PHP语言程序设计课后习题答案
- Android-JNI开发系列《八》CMakeLists.txt语法使用
- IS-IS IPv6配置实例
- PDH性能测试之五--待续
- ELK (三)安装kibana
- pandas使用速查表
- 第14届蓝桥杯省赛真题剖析-2023年5月7日Scratch编程初级组
- oracle进行列合并,oracle列合并的实现方法
- 云服务器gitlab,云服务器CentOS7.4下搭建GitLab
- 【Java】Java获取昨天日期的正确姿势
- 个人网站—首页HTML+CSS(超级简单的那种)
- PHP服务器在线测速系统源码+亲测可用
- 阿里巴巴“奇幻”上市之旅惨遭红灯
- 大学计算机基础--1
- mysql官方yum源_mysql 采用官方yum源的安装方法