设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结构。
insert(val):当元素 val 不存在时,向集合中插入该项。
remove(val):元素 val 存在时,从集合中移除该项。
getRandom:随机返回现有集合中的一项。每个元素应该有相同的概率被返回。
解析:这个比较简单了。直接使用python里面的list就可以。注意到insert(val):当元素 val 不存在时,向集合中插入该项。实际上元素存在时就不插入了,所以删除的时候可以使用list的remove,list的remove删除list中找到的第一个指定元素,如果题目不限制该数据结构中不能存在重复元素,就不能使用这个remove了。就需要使用list和dict结合的方法,保存每个元素储存的位置,再进行删除。
知识总结: