欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > python-leetcode-O(1) 时间插入、删除和获取随机元素

python-leetcode-O(1) 时间插入、删除和获取随机元素

2025/9/14 10:23:06 来源:https://blog.csdn.net/Lucy_wzw/article/details/144905884  浏览:    关键词:python-leetcode-O(1) 时间插入、删除和获取随机元素

380. O(1) 时间插入、删除和获取随机元素 - 力扣(LeetCode)

class RandomizedSet:def __init__(self):self.data = []  # 存储元素的列表self.index_map = {}  # 哈希表,存储元素及其索引    def insert(self, val: int) -> bool:if val in self.index_map:return Falseself.data.append(val)  # 将元素添加到数组末尾self.index_map[val] = len(self.data) - 1  # 在哈希表中记录索引return Truedef remove(self, val: int) -> bool:if val not in self.index_map:return False# 获取要删除元素的索引idx = self.index_map[val]last_element = self.data[-1]  # 获取数组的最后一个元素# 将最后一个元素移动到要删除元素的位置self.data[idx] = last_elementself.index_map[last_element] = idx# 删除数组末尾的元素self.data.pop()del self.index_map[val]  # 从哈希表中移除该元素return True        def getRandom(self) -> int:return random.choice(self.data)# Your RandomizedSet object will be instantiated and called as such:
# obj = RandomizedSet()
# param_1 = obj.insert(val)
# param_2 = obj.remove(val)
# param_3 = obj.getRandom()

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词