题目描述
这是 LeetCode 上的 380. O(1) 时间插入、删除和获取随机元素 ,难度为 中等。
Tag : 「数据结构」、「哈希表」
实现 RandomizedSet 类:
RandomizedSet()初始化RandomizedSet对象bool insert(int val)当元素val不存在时,向集合中插入该项,并返回true;否则,返回false。bool remove(int val)当元素val存在时,从集合中移除该项,并返回true;否则,返回false。int getRandom()随机返回现有集合中的一项(测试用例保证调用此方法时集合中至少存在一个元素)。每个元素应该有 相同的概率 被返回。
你必须实现类的所有函数,并满足每个函数的 平均 时间复杂度为 O(1)O(1)O(1) 。
示例:
scss
复制代码
输入 ["RandomizedSet", "insert", "remove", "insert", "getRandom", "remove", "insert",

文章介绍了LeetCode中的一道中等难度题目,要求实现RandomizedSet类,支持O(1)时间复杂度的插入、删除和获取随机元素操作。解决方案是结合哈希表和数组,使用哈希表存储元素及其在固定大小数组中的位置,确保元素随机返回。文章提供了Java代码实现,并分析了时间复杂度和空间复杂度。
最低0.47元/天 解锁文章
8972

被折叠的 条评论
为什么被折叠?



