LeetCode 380. 常数时间插入、删除和获取随机元素(哈希+vector)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 380. 常数时间插入、删除和获取随机元素(哈希+vector)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
設計一個支持在平均 時間復雜度 O(1) 下,執行以下操作的數據結構。
insert(val):當元素 val 不存在時,向集合中插入該項。
remove(val):元素 val 存在時,從集合中移除該項。
getRandom:隨機返回現有集合中的一項。每個元素應該有相同的概率被返回。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/insert-delete-getrandom-o1
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 哈希表 key存儲數據,value存儲其在vector中的下標
- 刪除時,先把vector尾部的數存到要刪除的位置
總結
以上是生活随笔為你收集整理的LeetCode 380. 常数时间插入、删除和获取随机元素(哈希+vector)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 430. 扁平化多级双
- 下一篇: LeetCode 92. 反转链表 II