- 0
- 0
- 约6.38千字
- 约 19页
- 2026-11-04 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年软件开发工程师面试流程及题目预测
一、编程能力测试(15分,共3题)
题目1(5分):实现一个LRU缓存机制
题目描述:设计一个LRU(LeastRecentlyUsed)缓存系统,支持以下操作:
-`get(key)`:获取键`key`对应的值,如果键存在,则返回值并更新该键为最近使用;如果不存在,返回-1。
-`put(key,value)`:插入或更新键值对。如果键已存在,则更新其值并设置为最近使用;如果键不存在,则插入该键值对。当缓存容量达到限制时,淘汰最久未使用的键。
要求:
-使用哈希表和双向链表实现,时间复杂度为O(1)。
-可以假设键都是非负整数。
示例:
LRUCachelRUCache=newLRUCache(2);
lRUCache.put(1,1);//缓存是{1=1}
lRUCache.put(2,2);//缓存是{1=1,2=2}
lRUCache.get(1);//返回1
lRUCache.put(3,3);//去除键2,缓存是{1=1,3=3}
lRUCache.get(2);//返回-1(未找到)
lRUCache.put(4,4);//去除键1,缓存是{4=4,3=3}
lRUCache.get(
原创力文档

文档评论(0)