我的LeetCode代码仓:https://github.com/617076674/LeetCode
原题链接:https://leetcode-cn.com/problems/lru-cache/description/
题目描述:
知识点:哈希表、双向链表、LRU缓存机制
思路一:用哈希表记录键值对,用双向链表处理LRU缓存机制
用示例来说明我们算法的流程,为了防止对null节点的讨论,初始化双向链表时设置虚拟头节点和虚拟尾节点,初始化的双向链表如下图所示:
(1)put(1, 1)
由于此时我们的链表容量为0,可以新增节点,且无需删除节点,这步操作后我们的链表如下图所示:
(2)put(2, 2)
由于此时我们的链表容量为1,可以新增节点,且无需删除节点,这步操作后我们的链表如下图所示:
(3)get(1)
此时我们将(1, 1)节点从链表尾部删除,并将其新增至链表头部,这步操作后我们的链表如下图所示: