[中等]380. 常数时间插入、删除和获取随机元素

设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结构。

insert(val):当元素 val 不存在时,向集合中插入该项。
remove(val):元素 val 存在时,从集合中移除该项。
getRandom:随机返回现有集合中的一项。每个元素应该有相同的概率被返回。

解析:这个比较简单了。直接使用python里面的list就可以。注意到insert(val):当元素 val 不存在时,向集合中插入该项。实际上元素存在时就不插入了,所以删除的时候可以使用list的remove,list的remove删除list中找到的第一个指定元素,如果题目不限制该数据结构中不能存在重复元素,就不能使用这个remove了。就需要使用list和dict结合的方法,保存每个元素储存的位置,再进行删除。

知识总结:
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容