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

阿克苏网站建设咨询百度seo关键词排名s

阿克苏网站建设咨询,百度seo关键词排名s,移动端响应式布局,一个网站上线需要什么思路源自 【面试高频】146. LRU 缓存 采用哈希表双向链表 put一个键值对时,采用头插法将缓存块置于等级较高的位置,如果put数量超出限制,那么就将尾部的缓存块删除,以此达到置换的一个效果 get一个键值对也是同样的思路&#xf…

思路源自

【面试高频】146. LRU 缓存

 采用哈希表+双向链表

put一个键值对时,采用头插法将缓存块置于等级较高的位置,如果put数量超出限制,那么就将尾部的缓存块删除,以此达到置换的一个效果

get一个键值对也是同样的思路,如果不命中直接返回-1,如果命中先删除缓存块再头插缓存块,这样就达到了访问后更新缓存块等级的目的

class LRUCache {class DoubleLinkedNode {DoubleLinkedNode pre;int key;int value;DoubleLinkedNode next;public DoubleLinkedNode() {key=-1;value=-1;}public DoubleLinkedNode(int key, int value) {this.key=key;this.value = value;}}private int size;private int capacity;private Map<Integer,DoubleLinkedNode> cache;DoubleLinkedNode head;DoubleLinkedNode tail;//初始化两个虚拟节点,头尾指针互指public LRUCache(int capacity) {this.size=0;this.capacity=capacity;this.cache = new HashMap<>();this.head = new DoubleLinkedNode();this.tail = new DoubleLinkedNode();head.pre=null;head.next=tail;tail.pre=head;tail.next = null;}//获取缓存中的值,如果命中要更新缓存public int get(int key) {if (cache.containsKey(key)) {DoubleLinkedNode doubleLinkedNode = cache.get(key);this.delete(doubleLinkedNode.key);this.add(doubleLinkedNode.key, doubleLinkedNode.value);return doubleLinkedNode.value;} else {return -1;}}//缓存添加或者置换public void put(int key, int value) {if (cache.containsKey(key)) {this.delete(key);this.add(key, value);} else {if (this.capacity == this.size) {this.delete(tail.pre.key);}this.add(key, value);}}//新增一个新的缓存,采用头插法private void add(int key, int value) {DoubleLinkedNode doubleLinkedNode = new DoubleLinkedNode(key, value);doubleLinkedNode.pre=this.head;doubleLinkedNode.next=this.head.next;this.head.next.pre=doubleLinkedNode;this.head.next=doubleLinkedNode;this.size++;cache.put(key, doubleLinkedNode);}//删除一个现有缓存private void delete(int key) {DoubleLinkedNode doubleLinkedNode = cache.get(key);doubleLinkedNode.pre.next=doubleLinkedNode.next;doubleLinkedNode.next.pre = doubleLinkedNode.pre;this.size--;cache.remove(key);}
}/*** Your LRUCache object will be instantiated and called as such:* LRUCache obj = new LRUCache(capacity);* int param_1 = obj.get(key);* obj.put(key,value);*/

http://www.dtcms.com/wzjs/191069.html

相关文章:

  • 义乌网站建设联系方式地推接单平台找推网
  • .net域名可以做银行网站吗网站收录怎么弄
  • 在哪里能找到建网站网络营销客服主要做什么
  • 静安做网站百度关键字搜索量查询
  • 全渠道分销零售平台宁波网站推广优化公司怎么样
  • 换域名影响网站不百度竞价推广方案范文
  • 旅行社网站建设方案书处理事件seo软件
  • 网站下载速度慢google网页版登录入口
  • 数据型网站建设百度网盟推广
  • 烟台网站建设的方法有哪些seo外包服务项目
  • 妇科医院网站设计南宁一站网网络技术有限公司
  • discuz 修改网站标题百度代做seo排名
  • 网络管理系统逻辑上的四个组成怎么seo网站排名
  • 网站后台管理规定湖北搜索引擎优化
  • 电子商务系统建设网站策划书线上引流的八种推广方式
  • 无锡做网站设计微信营销怎么做
  • 信访举报 网站 建设 情况权重查询爱站网
  • 做网站需要有服务器站长工具seo综合查询源码
  • wordpress表单中文版佛山做优化的公司
  • 北京网站制作与建设公司最新疫情爆发
  • 宁波哪里做网站的cps推广平台
  • 泾县网站seo优化排名seo交流
  • 湘潭网站建设有名磐石网络志鸿优化设计答案
  • 卖游戏币网站制作企业网站seo优化公司
  • 云南省玉溪市建设局官方网站促销活动推广方法有哪些
  • 怎么给网站加图标seo平台是什么
  • 外贸网站如何做推广是什么意思网上教育培训机构
  • 全部网站西安网站制作工作室
  • 海口模板建站哪家好美国今天刚刚发生的新闻
  • 做国学类网站合法吗重庆seo技术