- 0
- 0
- 约5.95千字
- 约 16页
- 2026-03-25 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年游戏客户端软件开发工程师面试题
一、编程能力测试(3题,每题20分,共60分)
1.题目:
请用C++实现一个简单的LRU(LeastRecentlyUsed)缓存淘汰算法,要求使用哈希表和双向链表结合的方式实现,并说明时间复杂度和空间复杂度。缓存容量为固定值`capacity`,输入为键值对,当缓存已满时,需要淘汰最久未使用的元素。
答案与解析:
cpp
includeunordered_map
includelist
templatetypenameK,typenameV
classLRUCache{
public:
LRUCache(intcapacity):capacity_(capacity){}
Vget(Kkey){
autoit=cache_map.find(key);
if(it==cache_map.end())returnV();//返回空值
//将访问的元素移动到链表头部
cache_list.splice(cache_list.begin(),cache_list,it-second);
returnit-second-second;
}
voidput(Kkey,Vvalue){
autoit=cache_map.f
原创力文档

文档评论(0)