LRU Cahce 思路演进
LRU第一版本思想
头尾位独立处理实现复杂容易出错。
采用map实现o(1)获取
使用双向链表控制LRU,一直有个用例不过
golang 实现如下:测试用例 12 / 18 个通过测试用例.
经过debug后发现为题判断如果是头指针和移除节点一致时处理除了问题
1 | type LRUCache struct { |
LRU第二版本思想
独立申请头尾哨兵节点,数据节点不在可能是头或尾部节点,插入和移除不用考虑过多情况实现简洁,不过在空间很小的情况下会多占两个节点可能空间会多O(2),但是带来的简洁性更高
代码如下:
1 | type LRUCache struct { |
