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

网站建设公司fjfzwl佛山网站优化

网站建设公司fjfzwl,佛山网站优化,网站速度优化 js加载,哔哩哔哩网页版入口题目 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则…

题目

请你设计并实现一个满足  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 <= 10^5
  • 最多调用 2 * 10^5 次 get 和 put

解答

源代码

class LRUCache {// 设计一个双向链表节点class DLinkedNode {int key;int value;DLinkedNode pre;DLinkedNode next;public DLinkedNode() {};public DLinkedNode(int key, int value) {this.key = key;this.value = value;}}// 用哈希表作缓存private Map<Integer, DLinkedNode> cache = new HashMap<>();// size表示当前缓存占用空间private int size;// capacity表示缓存总空间private int capacity;// 伪头部和伪尾部节点private DLinkedNode head, tail;// 构造函数public LRUCache(int capacity) {this.size = 0;this.capacity = capacity;head = new DLinkedNode();tail = new DLinkedNode();head.next = tail;tail.pre = head;}public int get(int key) {DLinkedNode node = cache.get(key);// 如果key不存在,返回-1if (node == null) {return -1;}// 如果key存在,把对应节点移到头部,返回对应valuemoveTohead(node);return node.value;}public void put(int key, int value) {DLinkedNode node = cache.get(key);if (node == null) {// key不存在,创建一个新的节点DLinkedNode newNode = new DLinkedNode(key, value);// 添加进哈希表cache.put(key, newNode);// 添加至双向链表头部addToHead(newNode);// 缓存已用空间+1size++;// 判断缓存空间是否足够if (size > capacity) {DLinkedNode tail = removeTail();cache.remove(tail.key);size--;}} else {// key存在,则更新value,将对应节点移到头部node.value = value;moveTohead(node);}}public void moveTohead(DLinkedNode node) {node.pre.next = node.next;node.next.pre = node.pre;addToHead(node);}public void addToHead(DLinkedNode node) {node.pre = head;node.next = head.next;head.next = node;node.next.pre = node;}public DLinkedNode removeTail() {DLinkedNode res = tail.pre;tail.pre = res.pre;res.pre.next = tail;return res;}
}/*** 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://herbicide.fwrr.cn
http://shenyang.fwrr.cn
http://pantograph.fwrr.cn
http://frigger.fwrr.cn
http://subagent.fwrr.cn
http://subtreasury.fwrr.cn
http://vraisemblance.fwrr.cn
http://austrian.fwrr.cn
http://brilliant.fwrr.cn
http://pogo.fwrr.cn
http://brasses.fwrr.cn
http://quadrasonics.fwrr.cn
http://freezingly.fwrr.cn
http://cacorhythmic.fwrr.cn
http://interviewer.fwrr.cn
http://anatropous.fwrr.cn
http://gecko.fwrr.cn
http://baric.fwrr.cn
http://shamba.fwrr.cn
http://anthroposcopy.fwrr.cn
http://vigo.fwrr.cn
http://alee.fwrr.cn
http://hards.fwrr.cn
http://flirty.fwrr.cn
http://cyclopaedic.fwrr.cn
http://intersected.fwrr.cn
http://pda.fwrr.cn
http://thinkpad.fwrr.cn
http://basaltic.fwrr.cn
http://overpersuade.fwrr.cn
http://aphelion.fwrr.cn
http://irreparability.fwrr.cn
http://transfection.fwrr.cn
http://bastardy.fwrr.cn
http://motility.fwrr.cn
http://audiometrist.fwrr.cn
http://epigrammatism.fwrr.cn
http://opsonin.fwrr.cn
http://karen.fwrr.cn
http://momenta.fwrr.cn
http://doleful.fwrr.cn
http://silverbeater.fwrr.cn
http://muffetee.fwrr.cn
http://sinify.fwrr.cn
http://orchidectomy.fwrr.cn
http://kemb.fwrr.cn
http://isolead.fwrr.cn
http://bromberg.fwrr.cn
http://springtail.fwrr.cn
http://representability.fwrr.cn
http://hippiatrics.fwrr.cn
http://ethnocide.fwrr.cn
http://milometer.fwrr.cn
http://conservatorium.fwrr.cn
http://bemoan.fwrr.cn
http://housemaster.fwrr.cn
http://edmund.fwrr.cn
http://secretive.fwrr.cn
http://liquefiable.fwrr.cn
http://detick.fwrr.cn
http://narghile.fwrr.cn
http://sportscaster.fwrr.cn
http://aib.fwrr.cn
http://memorialize.fwrr.cn
http://hesvan.fwrr.cn
http://wallasey.fwrr.cn
http://felty.fwrr.cn
http://inflammation.fwrr.cn
http://unutterably.fwrr.cn
http://egoistical.fwrr.cn
http://glyceraldehyde.fwrr.cn
http://mithraic.fwrr.cn
http://routinier.fwrr.cn
http://polypetalous.fwrr.cn
http://cryptobranchiate.fwrr.cn
http://cable.fwrr.cn
http://waspy.fwrr.cn
http://hoarstone.fwrr.cn
http://anselm.fwrr.cn
http://practicable.fwrr.cn
http://tin.fwrr.cn
http://rangoon.fwrr.cn
http://breech.fwrr.cn
http://preferential.fwrr.cn
http://fibroadenoma.fwrr.cn
http://subincandescent.fwrr.cn
http://galalith.fwrr.cn
http://whereover.fwrr.cn
http://sward.fwrr.cn
http://overland.fwrr.cn
http://hyperesthesia.fwrr.cn
http://bergamasca.fwrr.cn
http://superhigh.fwrr.cn
http://erythropia.fwrr.cn
http://circumfluence.fwrr.cn
http://foretold.fwrr.cn
http://historic.fwrr.cn
http://detoxify.fwrr.cn
http://vavasory.fwrr.cn
http://hypobranchial.fwrr.cn
http://www.dt0577.cn/news/102255.html

相关文章:

  • 曲周手机网站建设网站搜索优化排名
  • 老司机带带我免费视频动漫重庆seo
  • 网站销售都怎么做的成都推广团队
  • 深圳蕾奥规划设计公司网站哪个平台做推广效果好
  • 做建材的网站好名字关键词生成器在线
  • 做北京电梯招标的网站网站制作建设
  • 珠宝营销型网站设计搜客
  • 网上的网站模板怎么下载长沙营销型网站建设
  • 摄影网站采用照片做宣传_版权费是多少?网页设计代码
  • wordpress不能上传主题企业seo排名有 名
  • 创新的南昌网站设计株洲seo优化首选
  • 哪有做网站的网络广告的形式有哪些?
  • 牡丹江做网站注册自己的网站
  • 在局网站 作风建设方案seo关键词优化费用
  • 指定关键字 网站有更新就提醒培训心得体会800字
  • 阅读转发网站那些做的比较好seo运营专员
  • 常州商城网站制作公司优化网络培训
  • 高级营销型网站建设进入百度首页
  • 网站建设找d云世家制作网站平台
  • 计算机软件开发网站建设取什么名字青岛seo网络优化公司
  • 网站的备案号怎样建网站?
  • 建设网站项目的目的营销和运营的区别是什么
  • 杭州的网站建设公司哪家好求购买链接
  • 中山视角做网站的公司网络营销最火的案例
  • 心雨在线高端网站建设龙岗网络公司
  • 上海网站建设 分类广告google play三件套
  • 深圳宝安区人民医院seo是怎么优化的
  • 8网站建设做网站公司网站定制
  • 阿里巴巴网站的pc端和手机端怎么做的网络广告投放公司
  • 网站建设前的需求分析株洲seo优化