380. O(1) 时间插入、删除和获取随机元素 https://leetcode.cn/problems/insert-delete-getrandom-o1

710. 黑名单中的随机数 https://leetcode.cn/problems/random-pick-with-blacklist

前置知识

阅读本文前,你需要先学习:

本文讲两道比较有技巧性的数据结构设计题,都是和随机读取元素相关的,我在后文 谈谈游戏中的随机算法 也写过类似的问题。

这些问题的一个技巧点在于,如何结合哈希表和数组,使得数组的删除操作时间复杂度也变成 O(1)?下面来一道道看。

实现随机集合

避开黑名单的随机数

loading...