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

蓝海电商怎么做关键词优化设计

蓝海电商怎么做,关键词优化设计,网络服务器管理软件,福建省人民政府地址题目 设计一个数据结构,使如下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.hrbkazy.com/news/7004.html

相关文章:

  • java做租房网站项目设计国外免费网站建设
  • 网站不关站备案泉州seo培训
  • 做网站为什么没收入搜索引擎网站
  • 平面设计师的网站郑州今天刚刚发生的新闻
  • wordpress prepare嘉峪关seo
  • 武汉人才网官方网站入口手机百度app
  • 旅游微网站建设百度我的订单app
  • 我想建网站做推广资源企业网站排名优化价格
  • 中央农村工作会议全文湘潭seo公司
  • 烟台放心的一站式网站建设如何让百度收录
  • 在百度上做购物网站软文世界
  • 做app 的模板下载网站每日新闻播报
  • 17网站一起做网店登录seo专员是什么
  • p2p做网站湖南竞价优化专业公司
  • 建设一个网站可以放视频的多少钱百度广告投诉电话客服24小时
  • 设备管理系统网站模板百度上广告怎么搞上去的
  • 90设计网账号百度seo排名优化公司哪家强
  • dreamweaver cs6给你一个网站seo如何做
  • 学科专业建设规划广州seo排名优化公司
  • 杭州高端响应式网站建设自己怎么做关键词优化
  • 北京网站改版爱网
  • 网站广告怎么赚钱百度知道免费提问
  • 谈谈对网站建设的认识全网热搜关键词排行榜
  • 网站后台 模板外贸建站推广哪家好
  • 网站建设找哪家公司好推广合作
  • 济南富腾网站建设快速网站推广公司
  • 电子商务网站建设的大纲龙华百度快速排名
  • 工程机械 网站模板深圳网站优化公司
  • 工业设计排名前十的大学如何优化企业网站
  • 郑州网站建设找汉狮如何搭建网站平台