软件开发工程师面试宝典及编程题目解析.docxVIP

  • 2
  • 0
  • 约7.03千字
  • 约 18页
  • 2026-03-10 发布于福建
  • 举报

软件开发工程师面试宝典及编程题目解析.docx

第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)

1亿VIP精品文档

相关文档