LeetCode热题100-LRU 缓存

LRU = Least Recently Used,最近最少使用,题目要求所有操作必须O(1),所以只能使用哈希 + 双向链表实现。

  • 使用现成OrderedDict
python 复制代码
from collections import OrderedDict

class LRUCache:

    def __init__(self, capacity: int):
       self.capacity = capacity
       self.cache = OrderedDict() 

    def get(self, key: int) -> int:
        if not key in self.cache:
            return -1
        self.cache.move_to_end(key, last=False)  # 将书放到链首
        return self.cache[key]
        

    def put(self, key: int, value: int) -> None:
        self.cache[key] = value
        self.cache.move_to_end(key, last=False)
        if len(self.cache) > self.capacity:
            self.cache.popitem() # 去掉最后一本书
  • 自己实现(后续补充)
相关推荐
Via_Neo2 小时前
今天是周六,两天后是周几?
java·数据结构·算法
伟大的车尔尼2 小时前
广度优先搜索和深度优先搜索的概念
数据结构·算法·并查集·深度优先搜索·广度优先搜索
難釋懷2 小时前
Redis缓存预热
redis·spring·缓存
keep intensify2 小时前
最小覆盖子串
算法
仟濹2 小时前
【算法打卡day35(2026-03-31 周二)】DFS专项训练2(今日算法:DFS & 记忆化搜索 & 回溯)
c++·算法·蓝桥杯·深度优先
炽烈小老头2 小时前
【每天学习一点算法 2026/04/02】最长递增子序列
学习·算法
IronMurphy3 小时前
【算法三十五】22. 括号生成
算法
liuyao_xianhui3 小时前
优选算法_岛屿的最大面积_floodfill算法_C++
java·开发语言·数据结构·c++·算法·leetcode·链表
赵域Phoenix3 小时前
Origin导入xlsx数据解锁编辑
算法