难度:Medium
使用一个hashMap
但这样无法满足随机取数O(1)的要求。如果随机取数要求满足O(1),则应该属用数组,此时hashMap第二位存储数组的位置。
插入元素a时,先将元素放入vector,然后hashMap中记录下<元素,位置>。
删除元素a时,找到a的位置a_pos,交换vector中a和最后一位的位置,然后pop_back()。再将hashMap中最后一位元素的位置更新为a_pos。
1 | class RandomizedSet { |
78ms,超过70.87%
aim higher
难度:Medium
使用一个hashMap
但这样无法满足随机取数O(1)的要求。如果随机取数要求满足O(1),则应该属用数组,此时hashMap第二位存储数组的位置。
插入元素a时,先将元素放入vector,然后hashMap中记录下<元素,位置>。
删除元素a时,找到a的位置a_pos,交换vector中a和最后一位的位置,然后pop_back()。再将hashMap中最后一位元素的位置更新为a_pos。
1 | class RandomizedSet { |
78ms,超过70.87%