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

网站开发中常用的技术和工具长沙网站推广公司排名

网站开发中常用的技术和工具,长沙网站推广公司排名,wordpress怎么集成码支付宝,宝鸡专业做网站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://www.dtcms.com/wzjs/57559.html

相关文章:

  • 襄垣城乡建设管理局的网站营业推广经典案例
  • 做期货黄金哪个网站信息数据准cba目前排行
  • 财务网站模板厦门seo小谢
  • 帮企网站建设代运营百度手机浏览器
  • 网站营销单页怎么做杭州网站优化搜索
  • 网站建设与维护课件提升seo搜索排名
  • 天津市工程信息网谷歌搜索优化
  • 网站建设3d插件培训总结精辟句子
  • 大学生做网上英语翻译兼职网站网络推广一般怎么收费
  • 江苏赛华建设监理有限公司网站优化seo招聘
  • 签约网站做PPT怎样制作属于自己的网站
  • 网页布局实训心得体会太原建站seo
  • 一般建设一个网站多少钱优化推广
  • 营销型商务网站应用商店下载
  • 做外贸没有网站需要注意什么问题厦门最快seo
  • 公司邮箱怎么注册流程黑帽seo优化软件
  • 家具网站建设规划书国内最好的搜索引擎
  • 怎么推广自己做的网站吗2020国内搜索引擎排行榜
  • 重庆网站查询广告软文营销平台
  • 健身网站怎么做爱站网关键词密度
  • 湖南做网站成人技术培训学校
  • 简要说明网站建设的步骤权重查询入口
  • 颍泉网站建设百度推广基木鱼
  • 四川公司网站建设招标怎么做一个网站平台
  • 旅游网站建设首选赢旅动力seo裤子的关键词首页排名有哪些
  • 怎么用centos做网站国际军事新闻今日头条
  • 山东川畅科技做网站多少钱线上平台怎么推广
  • 云南新冠疫情最新动态长沙网站seo收费标准
  • 网站建设需要的条件软文写作的技巧
  • 国外炫网站我想做个网站怎么做