LeetCodeLRU缓存机制
LRU 缓存机制
题目描述:运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。 实现 LRUCache 类: LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。进阶:你是否可以在 O(1) 时间复杂度内完成这两种操作?
示例说明请见LeetCode官网。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/lru-cache/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一:LinkedHashMap
因为允许使用已有的数据结构,LinkedHashMap就支持,所以直接继承LinkedHashMap即可,当然这是偷懒的做法,如果了解LinkedHashMap的实现的话,照着实现就可以了。 import java.util.LinkedHashMap; import java.util.Map; public class LeetCode_146 { public static void main(String[] args) { // 测试用例 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 } } class LRUCache extends LinkedHashMap { private int capacity; public LRUCache(int capacity) { super(capacity, 0.75F, true); this.capacity = capacity; } public int get(int key) { return super.getOrDefault(key, -1); } public void put(int key, int value) { super.put(key, value); } /** * 移除最久未使用的数据的条件:当缓存容量达到上线 * * @param eldest * @return */ @Override protected boolean removeEldestEntry(Map.Entry eldest) { return size() > capacity; } }
【每日寄语】 也许奋斗了一辈子的屌丝也只是个屌丝,也许咸鱼翻身了不过是一个翻了面的咸鱼,但至少我们有做梦的自尊,而不是丢下一句‘努力无用’心安理得地生活下去。
司马南老师的初心?通过看完司马南老师的视频,并不是对联想有什么大仇,而是预警联想控股的P2P暴雷,一个科技型企业,民族品牌,做一行专一行精一行,服务社会,赚好它该赚的钱即可,为什么需要6张小贷牌照?
顺顺学党史11月25日顺顺学党史11月25日习近平总书记在党史学习教育动员大会上强调,全党同志要做到学史明理学史增信学史崇德学史力行,学党史悟思想办实事开新局,以昂扬姿态奋力开启全面建设社会主义现代化国
立讯精密投资机会中信电子立讯精密(002475。SZ)跟踪报告平台型布局龙头,一体化扩张助力新一轮成长公司概览低估值稳扩张的消费电子平台型龙头,紧跟大客户创新,一体化布局开启第二成长曲线。2018
哔哩哔哩回应提前3天自动续费被点名自查自纠海报新闻记者于明效上海报道11月25日,哔哩哔哩(B站)对会员提前3天自动续费的情况作出回应,称公司非常重视,第一时间进行自查自纠,并将马上着手进行优化,将自动续费期限调整为提前2
有哪些能给人带来极大幸福感的家用电器?下面说一些给我带来幸福感的电器吧1即热型饮水机再也不用准备烧水壶热水瓶凉水壶这些瓶瓶罐罐好多样了,只需要这样一个电器就能做到随时喝水,调节各种温度的水,泡奶泡茶都很方便,多喝热水哦
八代酷睿电脑为何值得买?欢迎在点击右上角关注太平洋电脑网,更多有趣资讯等着您哦。我来说说笔记本的。四月初英特尔推出了八代酷睿高性能处理器,表明上看只是一次CPU产品的常规升级,实际上八代酷睿高性能处理器不
印度首富安巴尼吹嘘的印度手机,出来了首先说一下这个事情的来龙去脉。当时印度首富安巴尼扬言说要搞特别廉价的手机,才50美元,然后销售,再利用推广出去的手机搞金融业务,XX贷之类的。说实话,这个模式有一定的可行性,毕竟靠
为什么小米手机参数那么高,但综合体验就是差强人意呢?华为天下第一,宇宙第一,满意了吧。哪里差?列举出来小米硬件配置没输过,体验没赢过。亲身体会,MIUI拉胯。小米大部分机型性价比确实很高,相同的硬件配置比其他牌子便宜。但是系统调教越
阿里三季度财报账上有4434亿元,每天能产生多少利息?按5年利率计算,每天产生利息443453650。607亿,相当于6070万,不过一般银行应该吃不下吧,只有国有大行才有可能有那个能力办理这么大的存款阿里巴巴第三季度财务报账4434
电脑实用小工具有一说一杀毒软件电脑管家这些软件里面的一些小工具还是非常好用的。比如他们的弹窗拦截啊,断网修复,强力删除,垃圾清理,开机加速c盘搬家系统急救,还有加速球等等等等很多很多。但是啊想要
消失了十年的首富陈天桥,资产悄悄膨胀了5倍来源百度新闻匠心计划创作者,资深财经作者,优质财经领域创作者帅真财经2004年在中国互联网发展史上,具有特殊意义。这一年,中概股盛大集团正式登陆纳斯达克,为中国互联网公司打开了国际
只差价格!联想新平板规格全公布5月21日消息,本月25日晚联想将举行夏季新品发布会,其中将会发布三款平板产品YOGAPadPro小新PadPro2021以及小新PadPlus,近日官方也不再卖关子,将三款平板的
嫦娥四号为什么要登陆到月球背面?1972年,阿波罗17号完成人类最后一次登月之后,地质学家阿波罗17号宇航员哈里森。施密特曾建议美国国家航空航天局,尽快发射阿波罗18号飞船,登陆到月球背面的齐奥尔科夫斯基撞击坑考
助听器能用几年?要经常换吗?正常使用的话可用58年是没有问题的,因助听器属于电子产品,您平常的保养维护很重要,保养得好的情况下是可以延长助听器寿命的,如果听力没有继续下降而您又保养得当的话,是不需要经常换的助
是什么让你决定放弃小米手机?当年用过小米5当主力机,实话实说,体验不怎么样,主要就2个问题,第一个问题就是骁龙820还是有点烫,夏天会出现打电话烫脸的情况,当然这个高通要背锅,不能全部怪小米,第二个问题就是,
现在用高通骁龙888处理器的水桶机都有哪些?感谢邀请现在用高通骁龙888处理器的水桶机都有哪些?题主问题的核心是现在用高通骁龙888处理器的水桶机都有哪些?这个问题我觉得只是每个人的想法不同,可能看法就会有差距。因为毕竟每个
微信视频聊天怎么美颜?平时在家,跟家人或朋友用微信直接拍视频聊天或照片聊天,都是没有经过美颜的,呈现出素颜的状态,有些丑丑的感觉,不敢见人!那么在微信上拍摄视频或者照片怎么打开美颜呢?其实这需要设置你的
左晖突然离世,贝壳何去何从?左晖一个一直在做着难而正确的事情的地产中介教父链家地产,我两套房子的经济业务受理公司,也是在那个和这个时代唯一在做真房源的公司。当年链家的优质资源都放在贝壳的时候,这是一个自我革新
马云和刘强东,你欣赏谁?马云刘强东都是互联网大佬,尽管马云身价高达4000亿,阿里巴巴一年净利润达到1400多亿,但是我更欣赏刘强东因为他白手起家。马云1964年9月10日生于浙江省杭州市,毕业于杭州师范
地球上如果进化出了只针对人类的真正天敌,它有可能是什么样子的?谢谢悟空问答平台的老师。地球上如果进化出人类天敌足以致人类灭绝。那就是病毒。自从地球上生活着人类,各种有毒细菌和病毒时刻伴随着人类,无时无刻等待吐噬人的生命。人类也在生活中加以不同
地球能承受多少人?现在人口就己经达到极限了,人类不能只享受人口增长带来的红利,而不去承担人口老龄化所带来的恶果,人口增长所带来的巨大消费需求,己经给地球造成了巨大伤害,怎样才能弥补人类对地球造成的伤
月球隔地球有多远?月球隔地球有多远?我来回答题主的这个问题吧,首先,月球以每秒1。02千米的速度,在稍扁的轨道上绕地球公转。月球离地球最近时,距离363300千米,最远时达405000千米,地球到月