146. LRU Cache (双向链表+哈希表实现 LRU Cache)

设计并实现一个LRU Cache,要求所有操作的时间复杂度为O(1),使用双向链表和哈希表作为关键数据结构。代码实现包括定义Node类和unordered_map<int, *Node>类型的map变量。" 131714805,5694077,节能算法解决物流选址碳排放与时间窗限制问题,"['算法', 'MATLAB', '开发语言', '物流', '碳排放']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

146. LRU Cache

题目大意: 设计并实现一个 LRU Cache.
实现对应的函数 get(key), put(key, value).
Follow up: 所有操作 O(1) 时间复杂度.

实现 LRU Cache 的关键数据结构: 双向链表 + 哈希表.
以下实现中, 定义了双向链表结点类 Node. 以及 unordered_map<int, *Node> 类型的 map 变量.

Code 部分
Node 结点类设计:

class Node {
   
public:
	int key;
	int value;
	Node *pre;
	Node *next;
	Node(int key, int value) {
   
		this->key = key;
		this->value = value;
		this->pre = NULL;
		this->next = NULL;
	}
};

LRUCache 类设计:

LRUCache 中, 包括一个头节点 head, 和一个尾结点 tail. 均不存放数据.
一个 unordered_map 类型的变量 map 用于匹配和存储要查找的 key/<key,value>.
class LRUCache {
   
private:
    int capacity;
    int count;
    unordered_map<int, Node*> map
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值