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

遂宁商城网站建设方案专业做域名的网站吗

遂宁商城网站建设方案,专业做域名的网站吗,伊春信息网,重庆小程序开发费用题目 设计一个数据结构#xff0c;使如下3个操作的时间复杂度都是O#xff08;1#xff09;。 insert#xff08;value#xff09;#xff1a;如果数据集中不包含一个数值#xff0c;则把它添加到数据集中。remove#xff08;value#xff09;#xff1a;如果数据集…题目 设计一个数据结构使如下3个操作的时间复杂度都是O1。 insertvalue如果数据集中不包含一个数值则把它添加到数据集中。removevalue如果数据集中包含一个数值则把它删除。getRandom()随机返回数据集中的一个数值要求数据集中每个数字被返回的概率都相同。 分析 由于题目要求插入和删除包括判断数据集中是否包含一个数值的时间复杂度都是O1能够同时满足这些时间效率要求的只有哈希表因此这个数据结构要用到哈希表。但是如果只用哈希表则不能等概率地返回其中的每个数值。 如果数值是保存在数组中的那么很容易实现等概率返回数组中的每个数值。假设数组的长度是n那么等概率随机生成从0到n-1的一个数字。如果生成的随机数是i则返回数组中下标为i的数值。由此可以发现需要结合哈希表和数组的特性来设计这个数据容器。 由于数值保存在数组中因此需要知道每个数值在数组中的位置否则在删除的时候就必须顺序扫描整个数组才能找到待删除的数值那就需要On的时间。通常把每个数值在数组中的位置信息保存到一个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 {HashMapInteger, Integer numToLocation;ArrayListInteger 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.zqtcl.cn/news/835600/

相关文章:

  • 网站项目中的工作流程网站建设社区
  • 建设厅网站查询电工证件提供网站建设公司哪家好
  • 免费网站软件下载安装称多网站建设
  • 网站客户续费深圳福田地图
  • 连云港做电商网站的公司营销公司网站模板
  • 沈阳企业网站优化排名方案富阳做网站公司
  • 企业网站优化报价自己做个网站怎么赚钱
  • 做ui的网站有哪些网站建设订单模板
  • 重庆企业网站优化wordpress 接收询盘
  • 小米4路由器可以做网站嘛杭州淘宝代运营公司十大排名
  • 枞阳做网站的百度搜索入口
  • 网站建设提议徐州网站建设方案咨询
  • 昆明高端网站建设专门做游轮的网站
  • 教育培训网站抄袭网站是广西住房和城乡建设厅
  • 广州做网站建设的公司哪家好网站建设运营公司
  • 网站集约化建设 技术国内永久在线免费建站
  • 极简资讯网站开发有什么免费推广项目的好软件
  • 网站有哪几种类型如何让百度分享按钮在网站每个页面都有
  • 北京市昌平建设工程招标网站网站建设要学哪些软件有哪些方面
  • 部队内网网站建设方案诱导视频网站怎么做
  • 安徽省美好乡村建设网站郑州网站建设 论坛
  • 手机网站怎么建设软件外包公司绩效考核内容
  • 北京最大的火车站网站免费推广方式
  • 外贸网站建设系统工程公司名称大全
  • 手机视频网站建站吴江区经济开发区建设工程网站
  • 网站建设存在哪些问题学校网站手机站的建设
  • 婚恋网站设计手机免费制作网站模板
  • 北京网站建设与维护公司网络组建方案设计
  • 自己做网站好还是凡科樱花动漫做网站
  • 自己做外贸开通什么网站wordpress万能主题