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

东台网站建设服务商pr软件

东台网站建设服务商,pr软件,济南建网站最好的,织梦cms侵权开庭请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中#xff0c;则返回关键字的值#xff0c;否则返回 -…请你设计并实现一个满足  LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类 LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中则返回关键字的值否则返回 -1 。void put(int key, int value) 如果关键字 key 已经存在则变更其数据值 value 如果不存在则向缓存中插入该组 key-value 。如果插入操作导致关键字数量超过 capacity 则应该 逐出 最久未使用的关键字。 函数 get 和 put 必须以 O(1) 的平均时间复杂度运行。 示例 输入 [LRUCache, put, put, get, put, get, put, get, get, get] [[2], [1, 1], [2, 2], [1], [3, 3], [2], [4, 4], [1], [3], [4]] 输出 [null, null, null, 1, null, -1, null, -1, 3, 4]解释 LRUCache lRUCache new LRUCache(2); lRUCache.put(1, 1); // 缓存是 {11} lRUCache.put(2, 2); // 缓存是 {11, 22} lRUCache.get(1); // 返回 1 lRUCache.put(3, 3); // 该操作会使得关键字 2 作废缓存是 {11, 33} lRUCache.get(2); // 返回 -1 (未找到) lRUCache.put(4, 4); // 该操作会使得关键字 1 作废缓存是 {44, 33} lRUCache.get(1); // 返回 -1 (未找到) lRUCache.get(3); // 返回 3 lRUCache.get(4); // 返回 4 思路 双向链表维护头尾节点用哈希表键值对寻找节点 代码 class lrulist {public:int val;int key;lrulist* next;lrulist* last;lrulist(int value, int k) : val(value), key(k), next(nullptr), last(nullptr){} }; class LRUCache { public:unordered_mapint, lrulist* hashmap;lrulist* back;lrulist* front;int size;int cap;void push_front(int value, int key){lrulist* newnode new lrulist(value, key);hashmap[key] newnode;if(front){newnode-next front;front-last newnode;}elseback newnode;front newnode;size;}void move(lrulist* node){if(node front)return;if(back node){back back-last;if(back)back-next nullptr; }else{node-last-next node-next;node-next-last node-last; }node-next front;if(front)front-last node;front node;}void del_node(lrulist* node){if(front node){front front-next;if(front)front-last nullptr;}else if(back node){back back-last;if(back)back-next nullptr;}hashmap.erase(node-key);--size;delete node; }LRUCache(int capacity) : size(0), cap(capacity), front(nullptr), back(nullptr){}int get(int key) {if(hashmap.find(key) ! hashmap.end()){move(hashmap[key]);return hashmap[key]-val;}elsereturn -1;}void put(int key, int value) {if(hashmap.find(key) hashmap.end()){if(size cap)del_node(back);push_front(value, key);}else{hashmap[key]-val value;move(hashmap[key]);}} };
http://www.hkea.cn/news/14281387/

相关文章:

  • 网站开发维护的工作职责乌海seo公司
  • 内部优惠券网站建站阳澄湖大闸蟹网站建设
  • 淮南学校网站建设电话宁波seo关键词培训
  • 一键生成作文的网站网站建设工作室 需要营业执照吗
  • 网站转化微信小程序成都哪家公司做网站比较好
  • 宁波网站建设与维护新产品开发流程和步骤
  • 企业 网站备案app开发公司有前景么
  • 响应式网站写法做外贸都有哪些好网站
  • 绥中做网站公司有经验的手机网站建设
  • wordpress网站上传到服务器微信建立公众号
  • 平台网站 备案吗高端网站建设域名注册
  • 如何做地方网站小型网站开发成本
  • 深圳市住房和建设局官方网站查询重庆网红打卡点有哪些地方
  • 网站开发重点难点网站调优
  • 网站建设英文翻译怎么样才能搜索到自己做的网站
  • 博客网站开发报告文库福建省建设信息网站
  • 优化网站排名软件深入解析wordpress(原书第2版) pdf
  • 网站标识代码怎么加flash型网站网址
  • 合水网站建设wordpress wp_head函数
  • 建设银行网站怎么登陆密码错误金华网站开发公司
  • 眉山网站开发集团公司网站建设策划方案
  • 大型企业网站源码河南省建设厅网站136号文件
  • 青田建设局网站网络营销有哪些功能
  • 制作做动画的网站哪里设计公司vi
  • 个人备案网站广州哪家做网站
  • 食材网站模板大全桂林象鼻山门票多少钱
  • 官方网站开发合同小红书关键词检测
  • 南京网站维护哈尔滨关键词优化报价
  • 网站如何有排名模具外贸营销网站如何做
  • 可视化建站源码最好的购物平台