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

陕西省建设总工会网站关键词优化技巧有哪些

陕西省建设总工会网站,关键词优化技巧有哪些,wordpress主题低调与华丽,外国网站做任务赚钱题目 设计一个数据结构,使如下3个操作的时间复杂度都是O(1)。 insert(value):如果数据集中不包含一个数值,则把它添加到数据集中。remove(value):如果数据集…

题目

设计一个数据结构,使如下3个操作的时间复杂度都是O(1)。

  • insert(value):如果数据集中不包含一个数值,则把它添加到数据集中。
  • remove(value):如果数据集中包含一个数值,则把它删除。
  • getRandom():随机返回数据集中的一个数值,要求数据集中每个数字被返回的概率都相同。

分析

由于题目要求插入和删除(包括判断数据集中是否包含一个数值)的时间复杂度都是O(1),能够同时满足这些时间效率要求的只有哈希表,因此这个数据结构要用到哈希表。但是如果只用哈希表,则不能等概率地返回其中的每个数值。

如果数值是保存在数组中的,那么很容易实现等概率返回数组中的每个数值。假设数组的长度是n,那么等概率随机生成从0到n-1的一个数字。如果生成的随机数是i,则返回数组中下标为i的数值。由此可以发现,需要结合哈希表和数组的特性来设计这个数据容器。

由于数值保存在数组中,因此需要知道每个数值在数组中的位置,否则在删除的时候就必须顺序扫描整个数组才能找到待删除的数值,那就需要O(n)的时间。通常把每个数值在数组中的位置信息保存到一个HashMap中,HashMap的键是数值,而对应的值为它在数组中的位置。

public class Test {public static void main(String[] args) {RandomizedSet randomizedSet = new RandomizedSet();randomizedSet.insert(1);randomizedSet.insert(2);randomizedSet.insert(3);randomizedSet.insert(4);for (int i = 0; i < randomizedSet.nums.size(); i++) {System.out.println(randomizedSet.nums.get(i));}System.out.println("-----------------------");randomizedSet.remove(2);for (int i = 0; i < randomizedSet.nums.size(); i++) {System.out.println(randomizedSet.nums.get(i));}System.out.println("-----------------------");System.out.println(randomizedSet.getRandom());}static class RandomizedSet {HashMap<Integer, Integer> numToLocation;ArrayList<Integer> nums;public RandomizedSet() {numToLocation = new HashMap<>();nums = new ArrayList<>();}public boolean insert(int val) {if (numToLocation.containsKey(val)) {return false;}numToLocation.put(val, nums.size());nums.add(val);return true;}public boolean remove(int val) {if (!numToLocation.containsKey(val)) {return false;}int location = numToLocation.get(val);numToLocation.put(nums.get(nums.size() - 1), location);numToLocation.remove(val);nums.set(location, nums.get(nums.size() - 1));nums.remove(nums.size() - 1);return true;}public int getRandom() {Random random = new Random();int r = random.nextInt(nums.size());return nums.get(r);}}
}
http://www.zhongyajixie.com/news/19428.html

相关文章:

  • 网站制作报价图片欣赏百度平台电话
  • 买东西网站西安区seo搜索排名优化
  • 做机械设备内销网站有哪些拉新app推广平台
  • 台州优秀网站设计手机网页制作软件
  • 企业做网站需要什么手续吗网络营销方式
  • 做网站怎么备案成人就业技术培训机构
  • 做海免费素材网站关键词优化技巧
  • 茶叶网站程序网站建设公司排名
  • 为什么做网站费用贵seo如何建立优化网站
  • b2c网上购物商城网站我们seo
  • 南阳建网站企业推广软件排行榜前十名
  • 如何建设可靠的网站刷关键词要刷大词吗
  • 专门做婚姻法的网站seo外链是什么意思
  • 找网站建设客户分类达人介绍
  • 《网站开发实践》 实训报告软件培训班学费多少
  • 自驾游网站建设网站推广多少钱
  • 璧山集团网站建设网站备案查询
  • 为什么建设长虹网站想要网站导航推广
  • 我们不是做网站的品牌营销策略四种类型
  • 网站做排行多少费用引擎搜索器
  • 做视频网站的空间百度帐号管家
  • 好的移动端网站模板下载营销模式都有哪些
  • 美食网站建设策划书seo型网站
  • php与网站建设关键词seo排名优化如何
  • 网站制作的建设大纲ppt云建站模板
  • 官网网站建设平台郑州百度推广代理公司
  • 网站建设建设公司哪家好百度官网首页登录
  • 南宁网站建设制作后台珠海做网站的公司
  • 做网站如何自己寻找客户seo优化销售话术
  • 求个没封的w站2021软件seo深圳优化