2018-07-15 18:36:29

问题描述:

问题求解:

    private ArrayList<Integer> ls;private HashMap<Integer, Integer> map;private Random rand;/** Initialize your data structure here. */public RandomizedSet() {ls = new ArrayList<>();map = new HashMap<>();rand = new Random();}/** Inserts a value to the set. Returns true if the set did not already contain the specified element. */public boolean insert(int val) {if (map.containsKey(val)) return false;ls.add(val);map.put(val, ls.size() - 1);return true;}/** Removes a value from the set. Returns true if the set contained the specified element. */public boolean remove(int val) {if (!map.containsKey(val)) return false;int idx = map.get(val);if (idx != ls.size() - 1) {int temp = ls.get(ls.size() - 1);ls.set(idx, temp);map.put(temp, idx);}map.remove(val);ls.remove(ls.size() - 1);return true;}/** Get a random element from the set. */public int getRandom() {return ls.get(rand.nextInt(ls.size()));}

转载于:https://www.cnblogs.com/TIMHY/p/9314470.html

Insert Delete GetRandom O(1)相关推荐

  1. leetcode381. Insert Delete GetRandom O(1) - Duplicates allowed

    题目要求 Design a data structure that supports all following operations in average O(1) time.Note: Dupli ...

  2. LeetCode Insert Delete GetRandom O(1) - Duplicates allowed

    题意:设计一个数据结构,支持添加,删除和随机获取元素,允许元素重复,要求时间复杂度为O(1) 思路:因为要求允许元素重复,可能用key=>set的映射方式,其中set表示相同元素对应的下标.用l ...

  3. LeetCode Insert Delete GetRandom O(1)

    题意:设计一个数据结构,支持添加.删除,随机获取操作,时间复杂度为O(1) 思路:因为元素不重复,在添加操作时,可以使用hashset和arraylist来做,其中hashset中的key表示添加的元 ...

  4. leetcode 380. Insert Delete GetRandom O(1) | 380. O(1) 时间插入、删除和获取随机元素(Java)

    题目 https://leetcode.com/problems/insert-delete-getrandom-o1/ 题解 一个设计题,没想出来,参考了: Java solution using ...

  5. 触发器实现两表之间的INSERT,DELETE,UPDATE

    需求说明:培训记录处录入"外出培训"记录,保存后同步外出培训合同至"合同模块" 培训记录表PX_Record创建触发器 步骤一.新建触发器:[insert_ht ...

  6. MySQL5.7 支持一个表有多个INSERT/DELETE/UPDATE触发器

    在MySQL5.6版本里,不支持一个表有多个INSERT/DELETE/UPDATE触发器. 例如创建t1表两个INSERT的触发器: DELIMITER $$ USE `test`$$ DROP T ...

  7. SQL server触发器中 update insert delete 分别给写个例子被。

    SQL server触发器中 update insert delete 分别给写个例子以及解释下例子的作用和意思被, 万分感谢!!!! 主要想知道下各个语句的书写规范. INSERT: 表1 (ID, ...

  8. Innodb锁系统 Insert/Delete 锁处理及死锁示例分析

    A.INSERT 插入操作在函数btr_cur_optimistic_insert->btr_cur_ins_lock_and_undo->lock_rec_insert_check_an ...

  9. mysql 5.7 insert_MySQL5.7 支持一个表有多个INSERT/DELETE/UPDATE触发器

    在MySQL5.6版本里,不支持一个表有多个INSERT/DELETE/UPDATE触发器. 例如创建t1表两个INSERT的触发器:DELIMITER $$ USE `test`$$ DROP TR ...

  10. oracle中update,insert,delete的高级用法

    一.对视图的更新. update,insert,delete除了可以作用于单表,还可以作用于视图.子查询,但是有种种限制. 视图(子查询)的限制:   1.没有集合操作符(并.差.交): 2.没有DI ...

最新文章

  1. 原本要与Hinton当同事,最后被迫Bengio门下读博?| 独立研究员的坎坷之路
  2. 指定用户 启动 进入 docker容器
  3. 计算机病毒的防治 教案,计算机病毒及防治教案
  4. Jenkisn之JDK-MVN-ANT-GRADLE
  5. 进阶篇-安卓系统:5.安卓手机位置传感器
  6. jrockit_1.6下载_Oracle JRockit Mission Control 4.1发布
  7. Linux的目录结构与磁盘分区
  8. 论文写作思路_2018年的16个写作思路
  9. 【Elasticsearch】明明存在,怎么搜索不出来呢?
  10. 面试常考题目之atoi的实现
  11. webapp构建工具库
  12. IDEA中解决Edit Configurations中没有tomcat Server选项的问题(附配置Tomcat)
  13. Oracle、MySql、SQLServer 数据库分页查询语句
  14. 位运算 -- 思考
  15. 杭电ACM2000题
  16. 【开源编码分享】Python古三式∶太乙神数丶奇门遁甲丶大六壬
  17. 关于软件测试的基础认知分享
  18. 工程项目提成标准方案_工程绩效提成奖金方案
  19. ArcGIS Pro简介
  20. R实战| 雷达图(Radar Chart)

热门文章

  1. 职场“35岁危机”:这是我看过的最棒建议
  2. 英特尔、高通等禁止员工与华为私下交流
  3. 推荐两个非常不错的公众号
  4. java给mongo数组添加_如何使用具有新值的java在mongodb中的现有集合中追加现有数组...
  5. Linux中级之lvs三个模式的图像补充(nat,dr,tun)
  6. 除了自定义cell以为,还可以通过属性来控制cell线条的长度
  7. 弱逼发福利——BZOJ简易题解
  8. 在MVC中要实现Ajax
  9. 获取目录-Winform
  10. 【原创】编程题练习:头插法尾插法建立单链表及找寻单链表中的倒数第K个节点...