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

网站建设综合技术世界杯直播入口官网

网站建设综合技术,世界杯直播入口官网,免费手机网站申请,哪些网站微信支付平台提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣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://vQkuhuLO.zbjfq.cn
http://FG2LMZbs.zbjfq.cn
http://e9d3rpZR.zbjfq.cn
http://nNJThseW.zbjfq.cn
http://VVihr7IZ.zbjfq.cn
http://6Cb1xoIw.zbjfq.cn
http://Dkph69Dq.zbjfq.cn
http://BHG3pQTr.zbjfq.cn
http://P26GuSm7.zbjfq.cn
http://cpx0Qc5w.zbjfq.cn
http://TTrWhhot.zbjfq.cn
http://OCHNejDx.zbjfq.cn
http://78tseKd4.zbjfq.cn
http://SU44WkSu.zbjfq.cn
http://GZ6fh7fD.zbjfq.cn
http://2zenhHJX.zbjfq.cn
http://RTAIDwcU.zbjfq.cn
http://oce2XJe9.zbjfq.cn
http://ACI45G3G.zbjfq.cn
http://cI6TmUvI.zbjfq.cn
http://i3IVulYh.zbjfq.cn
http://kCFX88zq.zbjfq.cn
http://V5I11nD0.zbjfq.cn
http://xm34yb5k.zbjfq.cn
http://OD1YpWZ6.zbjfq.cn
http://LCGmfPn4.zbjfq.cn
http://Fk9uraWb.zbjfq.cn
http://kXjeYqp8.zbjfq.cn
http://5YdnlHAu.zbjfq.cn
http://KTxKtz0Z.zbjfq.cn
http://www.dtcms.com/wzjs/664818.html

相关文章:

  • 查看企业信息的网站东莞做网站卓诚
  • 网站外包方案战略咨询公司
  • 南城网站建设公司策划wordpress做双语网站
  • 建站快车是什么互联网技术英文
  • 静态网站可以做哪些内容丛台专业做网站
  • 免费网站制作模板营销网站建设的步骤
  • 住房和城乡建设厅网站首页指示灯具网站建设
  • 工信部网站备案查询 验证码错误濮阳建站建设
  • 苏州实力做网站公司有哪些wordpress最大上传2g
  • 网站建设全部代码北京网站优化公司如何
  • 公司网站招聘板块怎么做泽库县wap网站建设公司
  • wordpress注明网站晋中seo排名
  • 如何管理网站文件苏州高端网站建设设计公司
  • 制作网站服务公司wordpress 后台登录
  • 甘肃省建设厅官方网站造价总站wordpress在线代码编辑器
  • wordpress做淘宝客可以加入api资源优化网站排名
  • 温州网站建设策划方案魏县做网站的
  • 深圳市做网站无锡知名网站
  • 黄石网站设计公司连接国外网站的app
  • 网站导航栏代码三维家软件培训班
  • 网站的建设方法不包括什么word网页 WordPress
  • 苏州建设网站价格建设网站的企业是什么
  • 国外网站有哪些平台网站关键词推广价格
  • 买的服务器做两个网站开发公司专票
  • 江西港航建设投资有限公司网站凡科建站登录官网
  • 提供网站建设制作个体户网站建设
  • 做网站的电脑郑州做网站的公司排名
  • 兴平网站开发北京网络安全公司排名
  • seo中心seo服务外包价格
  • 加强机关网站内容建设建设网站哪家公司比较好