问题描述:
Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get
and set
.
get(key)
- Get the value (will always be positive) of the key if the key exists in the cache, otherwise return -1.set(key, value)
- Set or insert the value if the key is not already present. When the cache reached its capacity, it should invalidate the least recently used item before inserting a new item.
原问题链接:https://leetcode.com/problems/lru-cache/
问题分析
这个问题的思路是希望能够设计一个类似于cache的数据结构,这个结构能够按照给定的大小构造。同时在进行get操作的时候能够查找到匹配的值,如果没有就返回-1。 set操作的时候则将将给定的值加入到里面,但是如果元素数量超过容量时,需要删除目前最不常用的元素。
如果从头开始设计这个结构的话会比较复杂,当然,这里有一个偷懒取巧的办法,就是利用java类库里现成的LinkedHashMap。它本身就已经支持这种访问了。
这是一种详细的实现代码:
import java.util.LinkedHashMap; public class LRUCache { private LinkedHashMap<Integer, Integer> map; private final int CAPACITY; public LRUCache(int capacity) { CAPACITY = capacity; map = new LinkedHashMap<Integer, Integer>(capacity, 1.0f, true){ protected boolean removeEldestEntry(Map.Entry eldest) { return size() > CAPACITY; } }; } public int get(int key) { return map.getOrDefault(key, -1); } public void set(int key, int value) { map.put(key, value); } }
相关推荐
Leetcode-LRU-cache LRU缓存 设计和实现最近最少使用 (LRU) 缓存的数据结构。 它应该支持以下操作:get 和 put。 get(key) - 如果键存在于缓存中,则获取键的值(将始终为正),否则返回 -1。 put(key, value) - ...
LRU_cache (Leetcode 146) 设计和实现最近最少使用 (LRU) 缓存的数据结构。 它应该支持以下操作:get 和 set。 get(key) – 如果键存在于缓存中,则获取键的值(将始终为正),否则返回 -1。 set(key, value) – ...
在LeetCode上,有一个经典的LRU Cache问题(问题编号146),要求设计一个数据结构,模拟LRU Cache的行为。这个问题通常用关联数组(哈希表)和双向链表来解决,因为这两种数据结构可以快速地完成查找、插入和删除...
lru cache leetcode 数据结构与算法学习 Leetcode 精选百题题解,按照数据结构与算法进行分类,专项练习,一道一道搞定,理解,融会贯通,基本上就无敌了! 数据结构与算法知识图谱 题目类型 数学 :rainbow::rainbow:...
lru缓存leetcode 问题描述 设计一个遵循最近最少使用 (LRU) 缓存约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity)使用正大小容量初始化 LRU 缓存。 int get(int key)如果键存在则返回键的值,否则返回-1...
lru缓存leetcode LRU缓存 受启发的简单 LRU 缓存实现 发展 建造 ./gradlew build 测试 ./gradlew test 使用示例 LRUCache< String , String > cache = new LRUCache<> ( 2 /* capacity */ ); cache . put( " ...
Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and put. get(key) – Get the value (will always be positive) of the key if ...
描述中的"lru cache leetcode leetcode AC题目汇总"进一步确认了这个压缩包包含的是关于LRU缓存的LeetCode解题集合,而且所有题目都已经实现了正确答案。"目前AC题目有: other AC题目 打印沙漏"可能是指除了LRU缓存...
lru cache leetcode LeetCode LeetCode 经典题目汇总 ( javascript实现 ) 刷LeetCode有一段时间了,下面记录一些经典的题目, 用来以后复习回顾使用. LeetCode: () 常用数据结构实现 LeetCode题目 链表 栈 队列 堆 ...
总之,这个"lrucacheleetcode-leetcode"项目是一个关于LeetCode平台LRU Cache问题的解决方案集合,通过学习其中的代码,我们可以深入了解LRU缓存的原理和实现,同时也可以借鉴开源社区的最佳实践,提升自己的编程和...
LRU_Cache是LeetCode的一个经典问题,旨在考察开发者对数据结构和算法的理解,特别是对LRU缓存机制的实现。 在这个问题中,你需要设计一个LRU缓存,它支持以下操作: 1. `get(key)`:如果键`key`存在于缓存中,则...
lru cache leetcode LeetCode copy and think 加油学习 1. 时间轴 时间 题目 描述 知识点 20200525 146. LRU Cache 数据结构 双向链表的删除和插入节点 20200525 190. Reverse Bits 二进制位数 二进制的&和>> <&...
lru缓存leetcode 力码 LeetCode 问题的解决方案 日期 问题 11/14/2018 2 两个数相加两个链表的160度交集 11/15/2018 第220话 以前的 -------------------算法----------------- 4.9 136单号104 二叉树的最大深度283 ...
cache leetcode Leetcode 参考: leetcode 经典题目解析&golang版代码 简单难度 中等难度 困难难度 算法专项 KMP 算法 动态规划: 887. 鸡蛋掉落 5. 最长回文子串 494. 目标和 322. 零钱兑换 279. 完全平方数 198. ...
LeetCode一些 LeetCode ... LRU Cache题目: | 源码:标签:哈希表,双向链表难度:中等 / Medium212. Word-Search-II题目: | 英文站源码:./problem-0212-Word-Search-II/标签:哈希表,双向链表难度:困难 / Hard
lru cache leetcode LeetCode 剑指offer LeetCode解题记录(python) 2018.9.19 两数之和(Two Sum) 2018.9.19 两数相加(Add Two Numbers) 2018.9.25 翻转二叉树(Invert Binary Tree) 2018.9.25 环形链表...
lru cache leetcode Beihu-LeetCode LeetCode Algorithm 数据结构 Array Stack LinkedList Queue/PriorityQueue(heap) Set/Disjoint Set Map/HashTable Tree/Binary Search Tree/Spanning tree Trie 字母树 Bloom...
lru cache leetcode boy-leetcode leetcode practise | 练习 LeetCode 题目 + 分类 + 公司归档 切题四件套 Clarification 明确题目意思 Possible solutions compare(time/space) optimal(加强) Coding(多写) Test ...
"哈希表实现LRU缓存策略"(LRU Cache)要求设计一个最近最常使用的缓存系统。 6. **动态规划**:这是一种解决最优化问题的方法,通过构建状态转移方程来求解。"背包问题"(Knapsack Problem)是典型的动态规划题目...
lru cache leetcode LeetCode刷题 题号是LeetCode原题,题目是自己的解答 Easy 题号 题目 Tags Star Company HashMap :star: :star: :star: Integer :star: :star: String :star: String、Stack :star: :star: :star...