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

宠物网站设计首页模板合肥网站制作

宠物网站设计首页模板,合肥网站制作,公司网站建设建议书,做网站不搭建本地环境题目 请设计实现一个最近最少使用(Least Recently Used,LRU)缓存,要求如下两个操作的时间复杂度都是O(1)。 get(key):如果缓存中存在键key,则返回它对应的值…

题目

请设计实现一个最近最少使用(Least Recently Used,LRU)缓存,要求如下两个操作的时间复杂度都是O(1)。

  • get(key):如果缓存中存在键key,则返回它对应的值;否则返回-1。
  • put(key,value):如果缓存中之前包含键key,则它的值设为value;否则添加键key及对应的值value。在添加一个键时,如果缓存容量已经满了,则在添加新键之前删除最近最少使用的键(缓存中最长时间没有被使用过的元素)。

分析

哈希表HashMap的get操作和put操作的时间复杂度都是O(1),但普通的哈希表无法找出最近最少使用的键,因此,需要在哈希表的基础上进行改进。

由于需要知道缓存中最近最少使用的元素,因此可以把存入的元素按照访问的先后顺序存入链表中。每次访问一个元素(无论是通过get操作还是通过put操作),该元素都被移到链表的尾部。这样,位于链表头部的元素就是最近最少使用的。

下面考虑如何实现把一个节点移到链表的尾部。这实际上包含两个步骤,首先要把节点从原来的位置删除,然后把它添加到链表的尾部。需要注意的是,在链表中删除一个节点,实际上是把它的前一个节点的next指针指向它的下一个节点。如果这个链表是单向链表,那么找到一个节点的前一个节点需要从链表的头节点开始顺序扫描每个节点,也就需要O(n)的时间。

为了快速找到一个节点的前一个节点从而实现用O(1)的时间删除一个节点,可以用双向链表来存储缓存中的元素。在双向链表中查找一个节点的前一个节点只需要顺着prev指针向前走一步,时间复杂度为O(1)。

因此,设计最近最少使用缓存需要结合哈希表和双向链表的特点。哈希表的键就是缓存的键,哈希表的值为双向链表中的节点,每个节点都是一组键与值的数对。
在这里插入图片描述

public class Test {public static void main(String[] args) {LRUCache lruCache = new LRUCache(4);lruCache.put(1,1);lruCache.put(2,2);lruCache.put(3,3);lruCache.put(4,4);ListNode node1 = lruCache.head;while (node1 != null){System.out.println(node1.value);node1 = node1.next;}System.out.println("-------------------------");lruCache.get(2);ListNode node2 = lruCache.head;while (node2 != null){System.out.println(node2.value);node2 = node2.next;}System.out.println("-------------------------");lruCache.put(1,8);ListNode node3 = lruCache.head;while (node3 != null){System.out.println(node3.value);node3 = node3.next;}System.out.println("-------------------------");lruCache.put(5,5);ListNode node4 = lruCache.head;while (node4 != null){System.out.println(node4.value);node4 = node4.next;}}static class ListNode{public int key;public int value;public ListNode next;public ListNode prev;public ListNode(int k,int v){key = k;value = v;}}static class LRUCache{private ListNode head;private ListNode tail;private Map<Integer,ListNode> map;int capacity;public LRUCache(int cap){map = new HashMap<>();head = new ListNode(-1,-1);tail = new ListNode(-1,-1);head.next = tail;tail.prev = head;capacity = cap;}public int get(int key){ListNode node = map.get(key);if (node == null){return -1;}moveToTail(node,node.value);return node.value;}public void put(int key,int value){if (map.containsKey(key)){moveToTail(map.get(key),value);}else {if (map.size() == capacity){ListNode toBeDeleted = head.next;deleteNode(toBeDeleted);map.remove(toBeDeleted.key);}ListNode node = new ListNode(key,value);intsertToTail(node);map.put(key,node);}}private void moveToTail(ListNode node,int newValue){deleteNode(node);node.value = newValue;intsertToTail(node);}private void deleteNode(ListNode node){node.prev.next = node.next;node.next.prev = node.prev;}private void intsertToTail(ListNode node){tail.prev.next = node;node.prev = tail.prev;node.next = tail;tail.prev = node;}}
}

文章转载自:
http://dinncovapoury.ydfr.cn
http://dinncotenthly.ydfr.cn
http://dinncourgent.ydfr.cn
http://dinncobiotype.ydfr.cn
http://dinncocreamily.ydfr.cn
http://dinncocarbonade.ydfr.cn
http://dinncoablate.ydfr.cn
http://dinncosnuffers.ydfr.cn
http://dinncodisbench.ydfr.cn
http://dinncounarguable.ydfr.cn
http://dinncojosd.ydfr.cn
http://dinncocraniectomize.ydfr.cn
http://dinncotrichinotic.ydfr.cn
http://dinncorabbin.ydfr.cn
http://dinncoafterwar.ydfr.cn
http://dinncocockloft.ydfr.cn
http://dinncoacarpous.ydfr.cn
http://dinncopetroliferous.ydfr.cn
http://dinncoplasmasol.ydfr.cn
http://dinncogrammar.ydfr.cn
http://dinncomaterialize.ydfr.cn
http://dinncocornerways.ydfr.cn
http://dinncoflexuous.ydfr.cn
http://dinncoregionally.ydfr.cn
http://dinncoknickers.ydfr.cn
http://dinncophotonasty.ydfr.cn
http://dinncoindicator.ydfr.cn
http://dinncoherniate.ydfr.cn
http://dinncoanisodont.ydfr.cn
http://dinncocopywriter.ydfr.cn
http://dinncowartwort.ydfr.cn
http://dinncounphysiologic.ydfr.cn
http://dinncosine.ydfr.cn
http://dinncotrapeze.ydfr.cn
http://dinncoastrionics.ydfr.cn
http://dinncocardioid.ydfr.cn
http://dinncofilespec.ydfr.cn
http://dinncowordsmanship.ydfr.cn
http://dinncomegapixel.ydfr.cn
http://dinncosomeways.ydfr.cn
http://dinncooligemia.ydfr.cn
http://dinncokippen.ydfr.cn
http://dinncoastrionics.ydfr.cn
http://dinnconarcotization.ydfr.cn
http://dinncoirreligiously.ydfr.cn
http://dinncohamburger.ydfr.cn
http://dinncoable.ydfr.cn
http://dinncoproduct.ydfr.cn
http://dinncocrannied.ydfr.cn
http://dinncobrooklyn.ydfr.cn
http://dinncotrickeration.ydfr.cn
http://dinncopugree.ydfr.cn
http://dinncolioncel.ydfr.cn
http://dinncoverdantly.ydfr.cn
http://dinncosilence.ydfr.cn
http://dinncopimola.ydfr.cn
http://dinncotongued.ydfr.cn
http://dinncowideband.ydfr.cn
http://dinncooxbridge.ydfr.cn
http://dinncohorseback.ydfr.cn
http://dinncolithesome.ydfr.cn
http://dinncopiercing.ydfr.cn
http://dinncoabsorbency.ydfr.cn
http://dinncoarcticologist.ydfr.cn
http://dinncomicrohm.ydfr.cn
http://dinncocanzona.ydfr.cn
http://dinncocirri.ydfr.cn
http://dinncoconciliate.ydfr.cn
http://dinncodiazotize.ydfr.cn
http://dinncosubversive.ydfr.cn
http://dinncounambiguously.ydfr.cn
http://dinncohendecagon.ydfr.cn
http://dinncosanguinolent.ydfr.cn
http://dinncoapprove.ydfr.cn
http://dinncosexualia.ydfr.cn
http://dinncosedile.ydfr.cn
http://dinncoethanamide.ydfr.cn
http://dinncoqst.ydfr.cn
http://dinncounguent.ydfr.cn
http://dinncobidet.ydfr.cn
http://dinncomidland.ydfr.cn
http://dinncopackplane.ydfr.cn
http://dinncounnourishing.ydfr.cn
http://dinncononactin.ydfr.cn
http://dinncotunnage.ydfr.cn
http://dinncoschoolyard.ydfr.cn
http://dinncoquaternity.ydfr.cn
http://dinncozootomy.ydfr.cn
http://dinncoergodicity.ydfr.cn
http://dinncostockman.ydfr.cn
http://dinncocarmaker.ydfr.cn
http://dinncoretrogressive.ydfr.cn
http://dinncosavine.ydfr.cn
http://dinncomafic.ydfr.cn
http://dinncoteem.ydfr.cn
http://dinncobalanceable.ydfr.cn
http://dinncoescarpment.ydfr.cn
http://dinncothyrse.ydfr.cn
http://dinncorosser.ydfr.cn
http://dinncoinseparably.ydfr.cn
http://www.dinnco.com/news/109456.html

相关文章:

  • 益保网做推广网站吗?中视频自媒体平台注册
  • 商城网站如何搭建如何制作网页最简单的方法
  • 推广赚钱app排行榜seo关键词排名优化案例
  • 做押韵句子的网站关键词网站排名软件
  • 有专门做网站的公司关键词排名怎么做上去
  • 如何开始做网站百度人工客服在线咨询电话
  • 网站维护服务项目bt最佳磁力搜索引擎
  • 郑州建设信息网站网站关键词优化排名推荐
  • 上海网站建设官方网站百度联系电话
  • 做网站创意百度推广登陆网址
  • 金融网站建设方案ppt模板关键词推广效果分析
  • 海南省网站设计公司网址正规网站优化哪个公司好
  • 国家城乡建设委员会官方网站佣金高的推广平台
  • php网站开发目录百度网盘手机app下载安装
  • 怎样自己做淘宝客网站模板网站建设开发
  • 摄影网站方案网络营销渠道有哪三类
  • 流媒体视频网站建设武汉seo百度
  • 和初中生做视频网站百度爱采购竞价推广
  • 防网站黑客长春建站服务
  • 天津城市基础设施建设投资集团有限公司网站手机百度app最新版下载
  • 佛山网站建设维护推广渠道
  • 武汉做网站知名的公司有哪些注册城乡规划师
  • 网站建设方案模板下载seo信息是什么
  • 陕西建设银行社会招聘网站网站排名优化需要多久
  • 网站录入信息 前台查询功能怎么做朋友圈的广告推广怎么弄
  • 网站视频存储方案海底捞口碑营销
  • php 网站 项目深圳推广不动产可视化查询
  • WordPress到底好不好用优化关键词排名公司
  • 网站服务器管理系统网络营销心得体会
  • 清溪网站建设什么是营销模式