- 2
- 0
- 约7.03千字
- 约 18页
- 2026-03-10 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年软件开发工程师面试宝典及编程题目解析
一、编程实现题(共3题,每题15分,总计45分)
题目1(15分):设计一个高效的LRU缓存机制
题目描述:
实现一个LRU(LeastRecentlyUsed)缓存机制,支持以下操作:
-`get(key)`:获取键`key`对应的值,如果键存在,则返回值,并将该键标记为最近使用;如果键不存在,返回-1。
-`put(key,value)`:插入或更新键值对。如果键已存在,则更新其值,并将该键标记为最近使用;如果键不存在,则插入该键值对。如果缓存容量已满,则删除最久未使用的键。
要求:
-使用哈希表和双向链表实现,确保`get`和`put`操作的时间复杂度为O(1)。
-请给出代码实现,并解释关键思路。
参考答案:
python
classDLinkedNode:
def__init__(self,key=0,value=0):
self.key=key
self.value=value
self.prev=None
self.next=None
classLRUCache:
def__init__(self,capacity:int):
self.capacity=capacity
self.cache={}
self.hea
原创力文档

文档评论(0)