软件工程师高级面试题及答案.docxVIP

  • 5
  • 0
  • 约8.6千字
  • 约 23页
  • 2026-04-01 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年软件工程师高级面试题及答案

一、编程题(共5题,每题20分,总分100分)

1.数据结构与算法(20分)

题目:

实现一个LRU(LeastRecentlyUsed)缓存机制,使用双向链表和哈希表。要求支持以下操作:

-`get(key)`:返回键对应的值,如果不存在返回-1。

-`put(key,value)`:向缓存中插入一个键值对。如果键已存在,则更新其值;如果缓存已满,则删除最久未使用的元素。

要求:

-使用Python或Java实现。

-时间复杂度为O(1)。

答案:

python

classListNode:

def__init__(self,key=0,value=0,prev=None,next=None):

self.key=key

self.value=value

self.prev=prev

self.next=next

classLRUCache:

def__init__(self,capacity:int):

self.capacity=capacity

self.cache={}

self.head=ListNode()

self.tail=ListNode()

self.head.next=self.tail

self.ta

文档评论(0)

1亿VIP精品文档

相关文档