LRU算法笔记

LRU算法使用双向链表和哈希表进行实现
   1. 双向链表按照被使用的顺序存储了这些键值对,靠近头部的键值对是最近使用的,而靠近尾部的键值对是最久未使用的。
    2.哈希表即为普通的哈希映射,通过缓存数据的键映射到其在双向链表中的位置。
所以,双向链表用于存储数据,增删头尾比较容易,但是需要知道地址才能erase中间元素,查找效率低;哈希表用于映射相应元素在双向链表中的地址,弥补了双向链表的查找效率。
两者配合实现增删查改。
cpp选手,双向链表list<int>,哈希表用unordered_map<int, list<int>::iterator>实现。
下图为华为426第二题cpp解法,引用了这位佬的一张图片,本菜鸡不太懂如何正确引用,只能放上佬的个人主页
https://www.nowcoder.com/users/515175727
图片有大佬水印,可直接访问主页
全部评论

相关推荐

后来123321:别着急,我学院本大二,投了1100份,两个面试,其中一个还是我去线下招聘会投的简历,有时候这东西也得看运气
点赞 评论 收藏
分享
评论
1
8
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务