LC 速查

HOT 100索引 › B7 链表 Linked List

LC 146LRU 缓存LRU Cache 中等

设计支持 get 与 put 的 LRU 缓存,两操作均 O(1),超容时淘汰最久未使用的键。

思路 OrderedDict:命中/写入 move_to_end 到尾,超容 popitem(last=False) 弹最旧。

class LRUCache:
    def __init__(self, capacity: int):
        self.cap = capacity
        self.od = OrderedDict()

    def get(self, key: int) -> int:
        if key not in self.od:
            return -1
        self.od.move_to_end(key)
        return self.od[key]

    def put(self, key: int, value: int) -> None:
        if key in self.od:
            self.od.move_to_end(key)
        self.od[key] = value
        if len(self.od) > self.cap:
            self.od.popitem(last=False)
← 上一题 合并 K 个升序链表二叉树的中序遍历 下一题 →