当前位置: 首页 > wzjs >正文

绍兴市科信建设工程检测中心网站策划推广

绍兴市科信建设工程检测中心网站,策划推广,汉川网站开发,中国世界排名前200的大学提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣380. O(1) 时间插入、删除和获取随机元素二、力扣710. 黑名单中的随机数 前言 常数时间删除-查找数组中的任意元素,且随机访问概率一致 如果…

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、力扣380. O(1) 时间插入、删除和获取随机元素
  • 二、力扣710. 黑名单中的随机数


前言


常数时间删除-查找数组中的任意元素,且随机访问概率一致
如果想「等概率」且「在 O(1) 的时间」取出元素,一定要满足:底层用数组实现,且数组必须是紧凑的。 这样我们就可以直接生成随机数作为索引,从数组中取出该随机索引对应的元素,作为随机元素。 但如果用数组存储元素的话,插入,删除的时间复杂度怎么可能是 O(1) 呢? 可以做到!对数组尾部进行插入和删除操作不会涉及数据搬移,时间复杂度是 O(1)。 所以,如果我们想在 O(1) 的时间删除数组中的某一个元素 val,可以先把这个元素交换到数组的尾部,然后再 pop 掉。 交换两个元素必须通过索引进行交换对吧,那么我们需要一个哈希表 valToIndex 来记录每个元素值对应的索引。

一、力扣380. O(1) 时间插入、删除和获取随机元素

class RandomizedSet {private List<Integer> nums;private Map<Integer, Integer> valToIndex;public RandomizedSet() {nums = new ArrayList<>();valToIndex = new HashMap<>();}public boolean insert(int val) {if(valToIndex.containsKey(val)){return false;}nums.add(val);valToIndex.put(val,nums.size()-1);return true;}public boolean remove(int val) {if(!valToIndex.containsKey(val)){return false;}int deleteIndex = valToIndex.get(val);int curIndex = nums.size()-1;Collections.swap(nums, deleteIndex, curIndex);valToIndex.put(nums.get(deleteIndex),deleteIndex);nums.remove(nums.size()-1);valToIndex.remove(val);return true;}public int getRandom() {return nums.get((int)(Math.random()*nums.size()));}
}/*** Your RandomizedSet object will be instantiated and called as such:* RandomizedSet obj = new RandomizedSet();* boolean param_1 = obj.insert(val);* boolean param_2 = obj.remove(val);* int param_3 = obj.getRandom();*/

二、力扣710. 黑名单中的随机数

class Solution {int RZ;Map<Integer,Integer> map;public Solution(int n, int[] blacklist) {RZ = n - blacklist.length;map = new HashMap<>();for(int b : blacklist){map.put(b,666);}int last = n-1;for(int b : blacklist){if(b >= RZ){continue;}while(map.containsKey(last)){last --;}map.put(b,last);last --;}}public int pick() {int index = (int)(Math.random()*RZ);if(map.containsKey(index)){return map.get(index);}return index;}
}/*** Your Solution object will be instantiated and called as such:* Solution obj = new Solution(n, blacklist);* int param_1 = obj.pick();*/

文章转载自:

http://D3miQhzW.qyfrd.cn
http://vhaaBc4q.qyfrd.cn
http://6h3fGXiA.qyfrd.cn
http://cql0LYfl.qyfrd.cn
http://aiAQqgJX.qyfrd.cn
http://Svmu4wpi.qyfrd.cn
http://T7izobp5.qyfrd.cn
http://mL7oILBo.qyfrd.cn
http://y3bkXdr0.qyfrd.cn
http://OchoU6OI.qyfrd.cn
http://pL7NScpJ.qyfrd.cn
http://B6Jhb2V2.qyfrd.cn
http://vpCs6N8w.qyfrd.cn
http://K6LRHYGw.qyfrd.cn
http://etqSRADx.qyfrd.cn
http://IBTkUVrW.qyfrd.cn
http://vNsnG1VJ.qyfrd.cn
http://PUVeulTt.qyfrd.cn
http://bhL7cAuF.qyfrd.cn
http://IBZsxK4J.qyfrd.cn
http://DIFWYE1B.qyfrd.cn
http://DiEpCvHR.qyfrd.cn
http://cwV8NtFE.qyfrd.cn
http://mCZofKVR.qyfrd.cn
http://ptqD9B7T.qyfrd.cn
http://Je00qqhJ.qyfrd.cn
http://80k0jhCW.qyfrd.cn
http://U20yAjMh.qyfrd.cn
http://z9gGoIUA.qyfrd.cn
http://ooi6nPpM.qyfrd.cn
http://www.dtcms.com/wzjs/726460.html

相关文章:

  • 网站招生宣传怎么做搜索引擎营销的名词解释
  • 网站界面用什么软件做深圳电商代运营公司排名
  • 用html5做的旅游网站代码桂林两江四湖
  • 在哪些软件上建设网站策划方案网站
  • 北京专业网站建设大全做网站还有希望吗
  • 深圳比较大的做网站设计公司广告设计自学教程
  • 辛集建设网站域名先解析后做网站
  • 营销型网站建设eyoucseo权重优化软件
  • 网站空间选linux网站推广好做吗
  • 注册网站邮箱发送的验证网页无法打开建设工程信息平台
  • 惠州公司做网站在线商城网站备案
  • 网站建设是什么样的企业电子商务网站建设的最终目的
  • 网站开发三层架构的系统浙江均泰建设有限公司网站
  • 做网站用什么软件做网站开发证书是什么
  • 成都网站建设优化企业排名聚美优品网站建设导向
  • 网站开发标书电子商务网站模板 html
  • 网站备案加链接代码西双版纳傣族自治州
  • 中文博客网站模板下载建网站免费咨询
  • 湖南酒店网站建设秦皇岛黄金海岸潮汐表
  • 网站建设考评表网站制作的公司哪家效果好
  • 178网站建设wordpress下载验证
  • 网站的外链情况做酒店网站的公司
  • 电子商务网站硬件需求如果网站不备案
  • 北京建网站品牌公司媒体资源网
  • 从化网站建设服务网站运营需要什么条件
  • 网站上传页面京东网站项目建设规划书
  • 什么网站可以自己做字站长工具查询网
  • 新闻门户网站建设网站怎么做关键词在哪做
  • 闵行营销型网站建设公司百度竞价推广托管
  • 网站用户体验存在问题英特尔网站开发框架