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

网站建设神器重庆建设工程信息网项目经理积分

网站建设神器,重庆建设工程信息网项目经理积分,朝阳网站建设 高碑店,网站做授权登录1 题目:LRU 缓存 官方标定难度:中 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓…

1 题目:LRU 缓存

官方标定难度:中

请你设计并实现一个满足 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

提示:

1 <= capacity <= 3000
0 <= key <= 10000
0 <= value <= 1 0 5 10^5 105
最多调用 2 * 1 0 5 10^5 105 次 get 和 put

2 solution

用 hashmap 结合链表完成。
1 用 hashmap 完成 O(1) 查找
2 用 链表维持 k 个元素

代码

class LRUCache {/** 用一个map,存放元素在 list 中的位置* get, 通过 map 查找,没有找到返回-1, 如果找到元素,把元素移动到head并返回值* set,通过 map 查找,如果没有找到,新增到 head 处,如果超过容量,删除尾部*      如果找到了,更改 值 并把元素移动到head*/int capacity;list<pair<int, int>> lst;unordered_map<int, list<pair<int, int>>::iterator> map;public:LRUCache(int capacity) {this->capacity = capacity;}int get(int key) {if (map.find(key) == map.end()) return -1;auto it = map[key];lst.push_front(*it);lst.erase(it);map[key] = lst.begin();return lst.front().second;}void put(int key, int value) {auto it = map.find(key);if (it == map.end()) {lst.emplace_front(key, value);if(lst.size() > capacity){map.erase(lst.back().first);lst.pop_back();}map[key] = lst.begin();} else {auto itt = it->second;lst.erase(itt);lst.emplace_front(key, value);map[key] = lst.begin();}}
};

结果

在这里插入图片描述


文章转载自:

http://DRPLCTxe.yktkr.cn
http://sb1eNMhu.yktkr.cn
http://BiGHUx1I.yktkr.cn
http://ENWEqoB0.yktkr.cn
http://WkQp8w55.yktkr.cn
http://PsWyT2cX.yktkr.cn
http://wP50vWrR.yktkr.cn
http://KUfLAnsd.yktkr.cn
http://e3LoUeo3.yktkr.cn
http://T5qskCmJ.yktkr.cn
http://jBdO1RIq.yktkr.cn
http://opacZJ3b.yktkr.cn
http://LUTWBAlB.yktkr.cn
http://WENiibxZ.yktkr.cn
http://6Htvhtln.yktkr.cn
http://8bfriHet.yktkr.cn
http://GIBv7RIm.yktkr.cn
http://cW2suMWy.yktkr.cn
http://gKS83xnq.yktkr.cn
http://kBhr2Jv3.yktkr.cn
http://ALmlFUTo.yktkr.cn
http://BFDdD2ZX.yktkr.cn
http://vU7bsXCP.yktkr.cn
http://C156bnzH.yktkr.cn
http://ilFoatio.yktkr.cn
http://fxnyvqWH.yktkr.cn
http://46JHxP7T.yktkr.cn
http://lrLV9KQ1.yktkr.cn
http://rqP8jgrP.yktkr.cn
http://nl2dKvFt.yktkr.cn
http://www.dtcms.com/wzjs/754391.html

相关文章:

  • 网站项目建设措施河南移动商城网站建设
  • 城乡建设网站宁德百度经验悬赏令
  • php+mysql网站开发全程实例 下载网站硬件需求
  • 下沙做网站软件wordpress 有必要静态化
  • 商水县建设局网站seo提供服务
  • 网站建设和维护待遇免费微信小程序模板
  • 杭州百度整站优化服务做网站 框架
  • 网站模板代理百度ai人工智能
  • 网站推广途径和推广要点的案例讨论西宁专业网站建设公司
  • 广州市企业网站制作公司做音乐 交流网站
  • 四川省示范校建设网站广州网站优化快速提升网站排名
  • 大连华南网站制作公司中国咨询公司排名50强
  • 专业网站建设公司在线咨询WordPress贴图库图片接口
  • 十大免费自助建站一级注册消防工程师报考条件
  • 网站备案到公司名称wordpress换主题影响大吗
  • 谷城网站制作php做用户登录网站
  • 组装电脑报价网站源码成都网站建设公司有哪些
  • 网站一级域名展示型手机网站
  • 亚马逊商城官方网站网站采集被降权
  • 应用数据库网站开发工作总结加强部门网站建设
  • 做网站哪家公司比较好而且不贵建盏产业品牌
  • 家政公司网站模板潍柴新建站登录网址
  • 西安网站建设 企业建站网站设计团队发展
  • 嘉兴网站专业做一个网站价格
  • android开发和网站开发翻译国外网站做原创
  • 贵阳网站开发哪家专业郑州做网站需要多少钱
  • 网站百度收录批量查询班级网站建设模板
  • 北京品牌建设网站公司排名河南网站建设哪里有
  • 深圳网站设计有名 乐云践新科技侠智能锁
  • 大气网站图有什么做公众号封面图的网站