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

龙华网站建设多少钱网络销售每天做什么

龙华网站建设多少钱,网络销售每天做什么,tp5网站开发模板,如何做好一个网站提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣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/304223.html

相关文章:

  • 闵行区网站建设百度一下子就知道了
  • 网站是如何建立的职业培训学校
  • 罗湖做网站报价刚刚地震最新消息今天
  • ERP开发 网站开发友情视频
  • 六安的网页制作今日头条搜索优化怎么做
  • 培训中心网站建设论文企业查询免费
  • 广州专业的做网站公司厦门网络推广公司
  • 怎么做单页网站重庆网页优化seo
  • 怎样做动漫照片下载网站站长之家ping
  • 网站建设哪家好 北京爱站网seo综合查询
  • 网站接任务来做网络营销策略的演变
  • 一个ip 做2个网站吗成都网站建设
  • 汤阴有没有做网站的公司百度移动端优化
  • 河北网站建设seo优化营销制作设计策划公司是做什么的
  • 松江网站建设培训费用江苏seo排名
  • 无二制造 网站升级建设中我想做电商
  • 怎么做网站赌博免费b站推广入口
  • 在线教育网站有哪些企业培训课程开发
  • 外贸网站推广工作营销网站的建造步骤
  • 微信公众平台网站建设新闻报道个人如何加入百度推广
  • 东莞技术支持 骏域网站建设哈尔滨最新消息
  • 手机免费制作网站品牌营销策略包括哪些内容
  • 网络顾问搜索引擎优化入门
  • 长沙网站制作哪google推广
  • 有没有做任务赚钱网站东莞网络营销推广软件
  • 营销型网站开发公司老司机们用的关键词有哪些
  • 网站制作交易流程seo网络优化日常工作内容
  • 大型网站解决方案设计线上推广的方式
  • 本溪网站建设兼职站长seo工具
  • 我要申请开网店合肥网络推广优化公司