百度高级技术专员面试题目.docxVIP

  • 4
  • 0
  • 约7.49千字
  • 约 19页
  • 2026-03-13 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年百度高级技术专员面试题目

一、编程实现题(共3题,每题20分,总分60分)

1.(20分)设计一个高效的LRU(最近最少使用)缓存机制

题目描述:

实现一个LRU缓存机制,支持以下操作:

-`get(key)`:获取键`key`对应的值,如果存在则返回值,并将其标记为最近使用;如果不存在返回-1。

-`put(key,value)`:插入或更新键值对,如果缓存已满,则移除最久未使用的元素。

要求:

-使用哈希表和双向链表实现,时间复杂度为O(1)。

-解释你的实现思路和关键数据结构的选择。

答案与解析:

实现思路:

-使用哈希表存储键到双向链表节点的映射,实现O(1)的get操作。

-使用双向链表存储缓存项,头部为最近使用的元素,尾部为最久未使用的元素。

-get操作时,如果键存在,将其移动到链表头部;如果不存在,返回-1。

-put操作时,如果键已存在,更新值并移动到链表头部;如果不存在,创建新节点并添加到链表头部。如果链表已满,移除链表尾部节点(最久未使用),并删除哈希表中的映射。

关键数据结构:

-哈希表:`key→Node`,Node包含`key`,`value`,`prev`,`next`。

-双向链表:头部为最近使用,尾部为最久未使用。

代码示例(Python):

pytho

文档评论(0)

1亿VIP精品文档

相关文档