摘要: leetcode 380. Insert Delete GetRandom O(1)  O(1) 时间插入、删除和获取随机元素 (中等) 这道题有个限制在常数时间范围内实现插入删除和获得随机数操作,没有该限制的话直接用一个HashSet就可以搞定。我们利用一个可变list和一个HashMap,其中list用来保存数字,HashMap用来建立每个数字和其在list中的位置之间的映射。重点在于删除元素的逻辑,如果要删除的元素不存在返回false,如果存在,先求出该元素在list中的索引,将list中最后一个元素更新到此位置,同时更新该元素中在hashmap的索引,然后list中删除最后一个元素,hashmap也删除要删除的元素 。 阅读全文
posted @ 2022-10-18 23:08 okokabcd 阅读(38) 评论(0) 推荐(0) 编辑