博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode – Refresh – LRU
阅读量:6946 次
发布时间:2019-06-27

本文共 1138 字,大约阅读时间需要 3 分钟。

1 struct Node { 2     int key, value; 3     Node(int k, int v) : key(k), value(v) {} 4 }; 5  6 class LRUCache{ 7 private: 8     int size; 9     list
nlist;10 unordered_map
::iterator> nmap;11 public:12 LRUCache(int capacity) {13 size = capacity;14 }15 16 int get(int key) {17 if (nmap.find(key) != nmap.end()) {18 nlist.splice(nlist.begin(), nlist, nmap[key]);19 nmap[key] = nlist.begin();20 return nlist.begin()->value;21 }22 return -1;23 }24 25 void set(int key, int value) {26 if (nmap.find(key) == nmap.end()) {27 if (size == nlist.size()) {28 nmap.erase(nlist.back().key);29 nlist.pop_back();30 }31 nlist.push_front(Node(key, value));32 nmap[key] = nlist.begin();33 } else {34 nlist.splice(nlist.begin(), nlist, nmap[key]);35 nmap[key] = nlist.begin();36 nlist.begin()->value = value;37 }38 }39 };

 

转载于:https://www.cnblogs.com/shuashuashua/p/4352710.html

你可能感兴趣的文章
bzoj5137 [Usaco2017 Dec]Standing Out from the Herd
查看>>
Mysql压缩包版zip的安装方法
查看>>
UWP 动画
查看>>
浅析设计模式(二)——工厂方法模式
查看>>
面试宝典-面试题1
查看>>
DAY1 linux 50条命令
查看>>
Eclipse设置Tab键为四个空格
查看>>
Windows漏洞利用技术概述
查看>>
多态与接口
查看>>
HTML5标准学习 - 文档结构
查看>>
zookeeper练习
查看>>
最短路径
查看>>
手机评测
查看>>
java ssm 后台框架平台 项目源码 websocket 即时通讯 IM quartz springmvc
查看>>
我的小爬虫—cocoa 中的正则表达式
查看>>
HTML5 中 div 和section以及 article 的不同之处
查看>>
Yii2学习笔记之场景
查看>>
CS Website
查看>>
docker - 容器里安装ssh
查看>>
Ant design 组件开发
查看>>