要求:请你设计并实现一个满足 LRU (Least Recently Used 最近最少使用) 缓存 约束的数据结构。
函数 get 和put 必须以 O(1) 的平均时间复杂度运行。
思路:采用 字典 + 双向链表
图解:
swift:
public class Solution {
class Node {
//需要存储key 移除key-value需要 key
var key: Int
var value: Int
var left: Node?
var right: Node?
init(key :Int=0, value: Int=0, left: Node?=nil, right: Node?=nil) {
self.key = key
self.value = value
self.left = left
self.right = right
}
}
private var dic = Dictionary<Int, Node>