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

文山州中小企业网站建设希爱力的功效及副作用

文山州中小企业网站建设,希爱力的功效及副作用,常德做网站专业公司,文字怎么生成网址链接请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 …

请你设计并实现一个满足 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); // 缓存是 {1=1}
lRUCache.put(2, 2); // 缓存是 {1=1, 2=2}
lRUCache.get(1); // 返回 1
lRUCache.put(3, 3); // 该操作会使得关键字 2 作废,缓存是 {1=1, 3=3}
lRUCache.get(2); // 返回 -1 (未找到)
lRUCache.put(4, 4); // 该操作会使得关键字 1 作废,缓存是 {4=4, 3=3}
lRUCache.get(1); // 返回 -1 (未找到)
lRUCache.get(3); // 返回 3
lRUCache.get(4); // 返回 4

336ms

typedef struct LRUnode{int key, value;struct LRUnode* prev;struct LRUnode* next;LRUnode():key(0),value(0),prev(NULL),next(NULL){};LRUnode(int key, int value):key(key),value(value),prev(NULL),next(NULL){};
}LRUnode;class LRUCache {
private:unordered_map<int,LRUnode*> m;LRUnode *head;LRUnode *tail;int size;int capacity;public:LRUCache(int capacity):capacity(capacity),size(0) {head = new LRUnode();tail = new LRUnode();head->next = tail;tail->prev = head;}int get(int key) {     int ret;auto it = m.find(key);if(it != m.end()){          ret = it->second->value;it->second->next->prev = it->second->prev;it->second->prev->next = it->second->next;it->second->next=head->next;it->second->prev = head;head->next->prev = it->second;head->next = it->second;}else{ret = -1;}return ret;}void put(int key, int value) { auto it = m.find(key);if(it!=m.end()){it->second->value = value;it->second->next->prev = it->second->prev;it->second->prev->next = it->second->next;it->second->next=head->next;it->second->prev = head;head->next->prev = it->second;head->next = it->second;}else{LRUnode *newNode = new LRUnode(key,value);m.insert(make_pair(key,newNode));newNode->next = head->next;head->next->prev = newNode;newNode->prev = head;head->next = newNode;size++;if(size>capacity){LRUnode *delNode = tail->prev;//tail->prev->prev = tail;tail->prev = tail->prev->prev;tail->prev->next = tail;size--;m.erase(delNode->key);delete delNode;}}}
};
http://www.yayakq.cn/news/782862/

相关文章:

  • 合作社网站建设免费的ps软件
  • 零代码自助建站平台python网站开发实例
  • 凡科网建网站付费链接怎么做wordpress mu 插件
  • 广州专业做网站的公司手机优化不到100怎么办
  • 极致优化WordPress网站速度wordpress勋章
  • 培训教育的网站怎么做校园网络建设
  • 普通人找工作哪个网站好wordpress 百度云视频
  • 在安阳想建个网站怎么做目前在哪个平台做推广好
  • 广东网站定制室内设计装修网站
  • wordpress能做手机站么网站开发微信登录流程
  • 南平公司做网站什么是网络营销中最古老的一种
  • 岳阳网站建设ui设计课程内容
  • 怎么做国际货运代理外贸网站1688货源网一件代发玩具
  • 常州行业网站怎么看网站的收录
  • 开发网站商城湖南省建设厅网站首页
  • 跨平台 移动网站开发宁波网站建设哪家公司好
  • 网站设计 中高端温州logo设计公司
  • 整站优化包年外贸网络推广公司排名
  • 深圳市住房建设部官方网站我想自己做的知道网站
  • 联系我们网站模板视频网站用什么做
  • 张家口网站建设开发建网站不想用怎样撤销
  • 申请建设单位门户网站的请示四川城乡住房城乡建设厅网站
  • 做中文网站公司网络优化的目的及意义
  • 比较好的公司网站网站建设面试题
  • 河源网站建设工作室广告设计网站排行榜前十名有哪些
  • 网站开发如何设置视频嘉兴网站建设seo
  • 先做网站还是appwordpress插件原理
  • 金融机构网站建设费用免费空间建网站
  • 焦作北京网站建设销售机械设备做网站
  • 济南网站建设是什么网站怎么做成二维码