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

手机网站制作推广创建免费网站

手机网站制作推广,创建免费网站,独立网站电子商务公司,网站建设公司模板总结下来,步骤大致是: 定义节点类,包含前驱、后继、键和值。 定义LRUCache类,包含容量、哈希表、头尾哑节点。 初始化时,创建头尾节点并连接,方便插入和删除操作。 get方法:如果存在节点&#…

总结下来,步骤大致是:

定义节点类,包含前驱、后继、键和值。
定义LRUCache类,包含容量、哈希表、头尾哑节点。
初始化时,创建头尾节点并连接,方便插入和删除操作。
get方法:如果存在节点,移动它到头部,返回值;否则返回-1。
put方法:如果存在节点,更新值并移动;否则创建新节点,添加到哈希表和链表头部,检查容量,超限则删除尾部节点。
辅助方法:添加节点到头部,删除节点,移动节点到头部,删除尾部节点。
这样应该就能正确实现LRU缓存了。然后,复杂度分析则是每个操作都是O(1),因为哈希表和双向链表的操作都是常数时间。
在这里插入图片描述

import java.util.HashMap;
class LRUCache{public static void main(String[] args) {LRUCache cache = new LRUCache(2);cache.put(1,11);cache.put(2,22);cache.put(3,33);cache.get(2);cache.put(4,44);}class DNodeList{int key;int val;DNodeList prev;DNodeList next;DNodeList(int key, int val){this.key = key;this.val = val;}}DNodeList head;// 虚拟头结点DNodeList tail; // 虚拟尾结点int capacity;// 容量HashMap<Integer, DNodeList> cache = new HashMap<>();LRUCache(int capacity){this.capacity = capacity;head = new DNodeList(-1, -1);tail = new DNodeList(-1, -1);head.next = tail;tail.prev = head;}// 存储节点的Hash表// 获取值int get(int key){if(!cache.containsKey(key)){return -1;}DNodeList node = cache.get(key);// 移动到头部moveToHead(node);return node.val;}// 放置值void put(int key, int val){if(cache.containsKey(key)){DNodeList node = cache.get(key);node.val = val;moveToHead(node);} else{DNodeList node = new DNodeList(key, val);addToHead(node);// 超容量,删除最近不使用的尾节点if(cache.size() > capacity){// 删除尾结点removeTail();}}}// 移动到头部void moveToHead(DNodeList node){// 删除节点removeNode(node);// 添加到头部addToHead(node);}// 删除节点void removeNode(DNodeList node){node.prev.next = node.next;node.next.prev = node.prev;cache.remove(node.key);}// 添加到头部void addToHead(DNodeList node){node.next = head.next;head.next.prev = node;head.next = node;node.prev = head;cache.put(node.key, node);}// 删除尾结点void removeTail(){removeNode(tail.prev);}}
http://www.dtcms.com/wzjs/100622.html

相关文章:

  • 做企业内部网站要多久360搜索引擎
  • 湘潭网站建设 磐石网络实惠网络营销
  • 做网站注意百度怎么创建自己的网站
  • 织梦网站如何做关键词网络推广渠道排名
  • 南通网站建设团队上海网站排名优化公司
  • 网站建设一般字体多大百度推广退款电话
  • 能自己在家做网站吗seo博客是什么意思
  • 网站建设的企业目标属于网络营销的特点是
  • 冀州建设局网站百度一下百度主页度
  • 做视频网站用什么语言帮别人发广告赚钱平台
  • 做网站需要哪些软件建立一个国外的网站
  • 做家具商城网站项目宣传推广方案
  • 怎么能找到做系统前的收藏网站域名查询大全
  • 顶级域名注册山西seo基础教程
  • 专业网站建设空间seo软件推广
  • 手机wap网站源码北京网站优化页面
  • 俄语网站建设注意事项四川疫情最新情况
  • 自己做的网站怎么改电话百度信息流怎么做效果好
  • 广东网站开发设计网络热词大全
  • 官方网站开发用什么语言校园推广
  • 中小企业经营管理培训班seo和sem的区别
  • 常州自助做网站360搜索推广官网
  • 网站访问频率南昌seo网站管理
  • 做外贸去哪些网站找老外58同城推广效果怎么样
  • 网站建设公司代理站长工具权重
  • 手机工信部网站备案查询全网线报 实时更新
  • 手机做网站的软件拉新推广怎么做代理
  • 动态网页有哪些网站关键词优化推广哪家快
  • 网站验收 流程nba赛季排名
  • 重庆营销型网站随做的好seo网站快速排名外包