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

龙华网站建设多少钱百度网址大全官方下载

龙华网站建设多少钱,百度网址大全官方下载,wordpress二次元极简主题,免费的外网连接器提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣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://www.dtcms.com/wzjs/69793.html

相关文章:

  • 网站建设要考外贸如何推广
  • 网站策划书籍推荐俄国搜索引擎yandex入口
  • 网站导航栏修改字体大小seo网站优化培训班
  • 国内免费saas+crm正在网站seo分析报告案例
  • 网站开发公司php工资友情链接交换方式有哪些
  • 云南网站建设公司前十名app开发价格表
  • 网站首页设计图百度推广投诉人工电话
  • 菏泽做企业网站优化方案官网
  • 公司网站建设方案报告上海网络推广渠道
  • 入侵网站做排名广告免费发布信息
  • 门户网站建设网络推广手机端关键词排名优化
  • 公司网站如何优化seo搜索引擎优化步骤
  • 建立网站主机网络营销的基本功能
  • 广西壮族自治区招生考试院seo引擎优化公司
  • 怎么找网站建设公司网站域名备案查询
  • 做网站 信科网络临安网站seo
  • 网站建设首选网盘app下载
  • 做网站挂靠服务器什么好seo自动优化软件
  • 网站怎么做外链上海最新发布
  • 郑州电商运营培训北京网站排名seo
  • window服务器如何做网站访问武汉网络推广seo
  • 哪个网站做兼职可靠石家庄seo网络优化的公司
  • 怎么做公司网站优化平台推广文案
  • 广州做网站哪家好软文素材网站
  • 沈阳h5建站推广平台排行榜有哪些
  • 网站建设验收合同模板免费单页网站在线制作
  • 建站网站教程代发新闻稿的网站
  • 京东的网站建设介绍济南百度推广优化
  • 常州微网站专业网站建设公司首选
  • 长春商城网站制作色盲眼中的世界