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() # 去掉最后一本书
  • 自己实现(后续补充)
相关推荐
6Hzlia1 小时前
【Hot 100 刷题计划】 LeetCode 739. 每日温度 | C++ 逆序单调栈
c++·算法·leetcode
良木生香1 小时前
【C++初阶】:STL——String从入门到应用完全指南(1)
c语言·开发语言·数据结构·c++·算法
XWalnut2 小时前
LeetCode刷题 day16
数据结构·算法·leetcode·链表·动态规划
foundbug9993 小时前
基于混合整数规划的电池容量优化 - MATLAB实现
数据结构·算法·matlab
woniu_buhui_fei4 小时前
Redis知识整理二
数据库·redis·缓存
untE EADO4 小时前
redis的下载和安装详解
数据库·redis·缓存
下次再写4 小时前
Java互联网大厂面试技术问答实战:涵盖Java SE、Spring Boot、微服务及多场景应用
java·数据库·缓存·面试·springboot·microservices·技术问答
白豆五5 小时前
Redis高级(持久化机制、主从集群、哨兵、分片集群)
数据库·redis·缓存
memcpy05 小时前
LeetCode 2452. 距离字典两次编辑以内的单词【暴力;字典树】中等
算法·leetcode·职场和发展
woniu_buhui_fei5 小时前
Redis知识整理一
数据库·redis·缓存