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

全球军事局势最新消息惠州seo整站优化

全球军事局势最新消息,惠州seo整站优化,wordpress文章归档,成都效果图制作公司排行榜题目描述 请你设计并实现一个满足 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 解题思想 1、使用双向链表 2、使用HashMap 将最近使用的放到链表头部如果超过容量就将最尾部的删除掉。 代码 class LRUCache { public://定义双向链表struct Node {int key, val;Node* next, * prev;Node(): key(0), val(0), prev(nullptr), next(nullptr){};Node(int _key,int _val):key(_key),val(_val), prev(nullptr), next(nullptr) {};};//链表的首尾节点Node* head, *tail;//key和结点的映射关系unordered_mapint, Node* umap;int capacity,size; //容量大小和已经使用的大小LRUCache(int capacity) {//初始化this-capacity capacity;this-size 0;head new Node();tail new Node();head-next tail;tail-prev head;}int get(int key) {//如果不存在返回-1if (!umap.count(key))return -1;Node* node umap[key];removeNode(node);addNodeToHead(node);return node-val;}void put(int key, int value) {//如果链表中key存在,就修改value的值,然后再插入到表头if (umap.count(key)) {Node* node umap[key];node-val value;removeNode(node);addNodeToHead(node);}//如果不存在else {//如果容量不够,就先删除最久未使用的然后再创建一个新的结点if (capacity size) {Node* removed tail-prev;//从哈希表中删除最久未访问的umap.erase(removed-key);//从链表中也删除removeNode(removed);size--;}//新创建一个节点Node* node new Node(key, value);addNodeToHead(node);umap[key] node;size;}}//删除当前节点void removeNode(Node* node) {node-prev-next node-next;node-next-prev node-prev;}//添加到表头void addNodeToHead(Node* node) {node-prev head;node-next head-next;head-next-prev node;head-next node;} };
http://www.hkea.cn/news/14387867/

相关文章:

  • 深圳有多少网站建设公司桂林网站seo
  • 临海建设银行网站聚名网备案
  • 网站建设方案书 百度文库教育云平台网站建设
  • 网站 类库制作企业网站与app有什么不同
  • 上传下载网站模板wordpress商品主题
  • 做营销网站公众平台微信登录
  • 2013影响网站百度搜索排名的关键因素统计wordpress+浮框
  • 求推荐做ppt的网站个人网站链接怎么做
  • 企业网站建设网站优化网站主机哪买
  • 如何选择佛山网站建设有什么网站学做标书的
  • 小众网站论文企业app定制
  • 手机网站建设 苏州手机网站大全123456
  • 浙江省建设项目招投标网站易语言 做网站
  • 源丰建设有限公司网站京津冀协同发展规划纲要全文 pdf
  • 网站开发的类型seo简历
  • 哈尔滨网站建设一薇ls15227百度公司在哪
  • 重庆怎么自己做网站网站的优化
  • 网上商城网站建设规划电商网站html模板
  • 漯河做网站龙岗网站制作讯息
  • 电子商务系统建设网站策划书双辽建设局网站
  • 全网推广平台seo手机关键词排行推广
  • 深圳建设造价信息网站免费下载简历自己填写
  • 央企八大设计院模板网站如何做seo
  • 网站服务器使用项目网格化管理方案
  • 做的网站 如何在局域网内访问北京市注册公司流程最新
  • 江苏省招投标办法建设厅网站南宁外包seo服务
  • 做渠道的网站有哪些方面做网站规避什么
  • 做的很好的画册网站seo网站布局
  • 怎样做网站哪家购物网站做的好
  • 东莞技术支持 骏域网站建设三丰云做网站步骤