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; } }
【每日寄语】 也许奋斗了一辈子的屌丝也只是个屌丝,也许咸鱼翻身了不过是一个翻了面的咸鱼,但至少我们有做梦的自尊,而不是丢下一句‘努力无用’心安理得地生活下去。
为什么愿意戴眼镜却不愿意佩戴助听器?为什么助听器眼镜?在工作中,我们经常把助听器与眼镜进行比较。毕竟,它们都是戴在我们的头上,都可以弥补感官损失,改善通向大脑的信号。虽然这种比较有助于消除人们对助听器的顾虑(例如,眼
佳能1dx和5d4价差不多,哪个拍照更好?该如何选择?第一张为5D3十2470,第二张为1D十70200,两张的画质无啥区别,难分百仲。只有在专业测试仪去测试其优劣。看大家好多人都在说,要像素高就选5D4,速度快就选1DX,我两台机器
为了规避制裁,华为和诺基亚合资生产的手机N8你会买么?mate系列和Nova系列有望以TDTech重生。希望麒麟芯片也一起复活。内什么,鼎桥N8是华为和西门子合作的产物,和诺基亚么撒关系狗头已经哦豁了,也不知道这些花粉菊系kol是怎么
12月17日股市内参一投资资讯12021创新数据基础设施论坛下周召开领航海量数据时代据华为官网消息,由央视新闻和华为共同带来的2021创新数据基础设施论坛将于2021年12月22日线上举行,并由央视新
字节跳动加速收缩撤销人才发展中心,继续精简HR团队记者柯晓斌近日,字节跳动发布内部邮件称,决定撤销人才发展中心部门。邮件内容显示,经过HR管理团队和公司管理团队多方面慎重考虑,做出以下决定整体撤销人才发展中心团队。现有团队成员优先
MyBatis3。5。8发布,Java数据持久层框架MyBatis3。5。8已发布,MyBatis的前身为iBatis,是一个数据持久层(ORM)框架,它提供的持久层能力包括SQLMaps和DataAccessObjects(DAO
我为什么不跑顺丰同城了第一点,顺丰骑士这软件,不给通知权限就不能抢单,这是强制性的要求,美团众包蜂鸟众包不开启通知权限却能正常接单,这就是流氓一样的存在。第二点,扣罚太狠。第三点,单价太低,蜂鸟众包和美
人穷穷一时华为。志穷穷一生联想人穷穷一时(注重研发重视人才)华为。志穷穷一生(重营销投机倒把)联想这事不是司马南抽丝剥茧整理出来,我国经济落到这些靠投机倒把玩资本永不灭,企业家都去玩资本重营销,没有核心技术,轻
当年因华为放弃读博的郑宝用,帮任正非盈利百亿后,为何退居二线他,曾是高考状元,靠60块钱读完大学,却因任正非的一句话,在毕业前一个月放弃学位他,以一己之力帮华为狂赚200亿,却在巅峰期退居二线,从此隐迹江湖。发生了什么?这两年,华为公司的消
OPPOFindN(12GB512GB5G版)怎么样?OPPOFindNOPPOFindN(12GB512GB5G版)最新价格是8999元,想买手机不要慌,选它就够了,过去还是现在都能好用,上市时间为2022年。首先,我们关注屏幕方面
小米卢伟冰等手机大佬为联发科站台!天玑9000芯片哪家首发?明年的高端旗舰手机市场必将会非常热闹,因为不仅有高通的骁龙8Gen1芯片,还有联发科的天玑9000芯片。众所周知,联发科推出天玑芯片后已彻底的翻身,但就目前天玑1200芯片的性能来