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

邵阳市网站建设_网站建设公司_内容更新_seo优化

深圳福田网站设计,产品设计考研学校排名,常州市新北区建设与管理局网站,vuejs做视频网站题目描述 请你设计并实现一个满足 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 capacity 30000 key 100000 value 105最多调用 2 * 105 次 get 和 put 解答 class LRUCache { public:LRUCache(int capacity) : cap(capacity) {}int get(int key) {// unordered_map做查找if(map.find(key) map.end()){return -1;}pairint, int key_value *map[key]; // list做插入删除// 将cache中原来访问的kv对删除插入到cache头cache.erase(map[key]);cache.push_front(key_value);map[key] cache.begin(); return key_value.second;}void put(int key, int value) {// 待插入元素在cache中没有if(map.find(key) map.end()){// cache已满删除最近最久未用if(cache.size() cap){map.erase(cache.back().first);cache.pop_back(); // }}else // 待插入元素在cache中存在把原来队组删除{cache.erase(map[key]);}// 插入cache.push_front(pairint, int (key, value));map[key] cache.begin();}private:// key为插入的关键字unordered_mapint, listpairint, int::iterator map; // 哈希表查找快// list 存具体缓存内容listpairint, int cache; // 链表插入快队尾是最近最久未用int cap; };/*** Your LRUCache object will be instantiated and called as such:* LRUCache* obj new LRUCache(capacity);* int param_1 obj-get(key);* obj-put(key,value);*/
http://www.ihoyoo.com/news/133445.html

相关文章:

  • 培训网站源码学视频剪辑去哪里学比较好
  • 知名的家居行业网站开发怎么评价网站的好坏
  • 淘宝网首页登录网页版凯里seo排名优化
  • 淄博网站制作公司推广开电商网站需要多少钱
  • 那个外贸网站做的好qifeiye做的网站如何
  • 企业网站建设销售前景汽车 营销 网站建设
  • 辽宁省档案网站建设菏泽做公司简介网站
  • 网站建设合同】哪一家好
  • 取消网站的通知网站开发工程师职位要求
  • 做外贸英语网站山东优质校建设专题网站
  • 能发锚文本的网站彩票站自己做网站
  • 做网站编程语言网站更新迭代
  • 上海网站建设广告语网站备案系统登陆不上
  • 长沙口碑好网站建设公司老外做中文网站
  • 衡阳市做淘宝网站建设软件开发和大数据哪个前景好
  • 品牌网站推广软件网站备案被注销
  • 云空间网站网红营销推广
  • 大连城乡建设网站广东深圳旅游必去十大景点
  • 织梦网站栏目字体怎么调洗发水营销推广软文800字
  • 中石建基础设施建设有限公司网站购买网站空间大小
  • 临沂企业做网站wordpress管理员页面
  • 做rom网站辽宁省住房和城乡建设厅网站换了
  • 网站的费用可以做无形资产吗品牌网站建设渠道
  • 网站制作切图做一个专业的网站多少钱
  • 设计师可以做兼职的网站中国企业500强营业收入
  • 南京建设工程公共资源交易中心网站正规推广平台
  • 营销型网站建设比较好新手怎么建立自己网站
  • 网站开发工作难吗网站用Access做数据库
  • 怎么做网站引流汕头网站设计哪家好
  • qq上网站做我女朋友接单做效果图网站