381. Insert Delete GetRandom O(1) - Duplicates allowed
来源:互联网 发布:vscode 插件推荐 编辑:程序博客网 时间:2024/05/18 19:21
public class RandomizedCollection { HashMap<Integer,Integer> hashMap;/*前面的是插入的数字,后面是这个数字的数量*/ LinkedList<Integer> list ; /** Initialize your data structure here. */ public RandomizedCollection() { hashMap = new HashMap<Integer,Integer>(); list = new LinkedList<Integer>(); } /** Inserts a value to the collection. Returns true if the collection did not already contain the specified element. */ public boolean insert(int val) { if (hashMap.containsKey(val)&&hashMap.get(val)>0){ //之前可能插入了又删除了,所以这个数的数量必须大于零 hashMap.put(val,hashMap.get(val)+1); list.add(val); return false; }else { hashMap.put(val,1); list.add(val); return true; } } /** Removes a value from the collection. Returns true if the collection contained the specified element. */ public boolean remove(int val) { if (!hashMap.containsKey(val)||hashMap.get(val)==0){ return false; }else{ hashMap.put(val,hashMap.get(val)-1); list.removeFirstOccurrence(val); return true; } } /** Get a random element from the collection. */ public int getRandom() { Random rand = new Random(); return list.get( rand.nextInt(list.size()) ); }}/** * Your RandomizedCollection object will be instantiated and called as such: * RandomizedCollection obj = new RandomizedCollection(); * boolean param_1 = obj.insert(val); * boolean param_2 = obj.remove(val); * int param_3 = obj.getRandom(); */
0 0
- Insert Delete GetRandom O(1) - Duplicates allowed
- Insert Delete GetRandom O(1) - Duplicates allowed
- Insert Delete GetRandom O(1) - Duplicates allowed
- LeetCode—381. Insert Delete GetRandom O(1) - Duplicates allowed
- [leetcode] 381. Insert Delete GetRandom O(1) - Duplicates allowed
- 381. Insert Delete GetRandom O(1) - Duplicates allowed
- <leetcode>381. Insert Delete GetRandom O(1) - Duplicates allowed
- 381. Insert Delete GetRandom O(1) - Duplicates allowed
- 381. Insert Delete GetRandom O(1) - Duplicates allowed
- LeetCode 381. Insert Delete GetRandom O(1) - Duplicates allowed
- 381. Insert Delete GetRandom O(1) - Duplicates allowed
- 381. Insert Delete GetRandom O(1) - Duplicates allowed
- 381. Insert Delete GetRandom O(1) - Duplicates allowed
- 【Leetcode】Insert Delete GetRandom O(1) - Duplicates allowed
- leetcode之Insert Delete GetRandom O(1) - Duplicates allowed
- 151.Insert Delete GetRandom O(1) - Duplicates allowed
- LeetCode Insert Delete GetRandom O(1) - Duplicates allowed
- Insert Delete GetRandom O(1) - Duplicates allowed in JAVA
- Android 之热门标签设计
- 猜数字
- SDWebImage的缓存机制
- 数据库索引的作用和优点缺点
- 【HDU】-4324-Triangle LOVE(拓扑,环)
- 381. Insert Delete GetRandom O(1) - Duplicates allowed
- 《大话数据结构》
- NOIP2007【矩阵取数游戏】
- Pixhawk与树莓派3的串口通信
- (转载总结)SVD 及其在推荐系统中的应用
- hdu 5898 数位dp,记忆化搜索
- [noip测试]最长上升子串(乱搞||dp)
- Android自定义控件--仿安全卫士中的一键加速【圆形进度条】
- Android Touch事件的传递机制