鳗鱼世界

文章
5
资源
0
加入时间
2年10月21天

leetcode专题训练146. LRU Cache

解法1:解法1我是当作大模拟来做的。由于key如果被用,那么无论之前在什么位置,都要被换到最新使用的位置。所以一直在想什么数据结构可以灵活换位置,后来发现可以用链表,所以维护了一个链表,链表中的顺序由最远使用到最近使用。而且由于需要把最远使用的弹出,把最新使用的插入,所以链表的头和尾都需要有个指针指示。在本代码中,分别使用cache_head和cache_tail表示。而取键值的操作,为了不每次都从链表头遍历,我使用了一个dict数据结构,这个数据结构单纯的用于存储LRU中的键值,取值的复杂度为