2026年软件工程师技术面试练习题.docxVIP

  • 0
  • 0
  • 约5.99千字
  • 约 17页
  • 2026-08-09 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年软件工程师技术面试练习题

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

题目1(Java,20分)

题目描述:

实现一个简单的LRU(LeastRecentlyUsed)缓存机制,使用Java语言编写。缓存容量为固定值`capacity`,当缓存满时,最久未使用的数据将被移除。缓存需要支持`get(key)`和`put(key,value)`操作,`get`操作返回键对应的值,如果键不存在返回-1;`put`操作添加或更新键值对,如果缓存已满,需要移除最久未使用的数据。

要求:

1.使用链表和哈希表实现,确保`get`和`put`操作的时间复杂度为O(1)。

2.请展示关键代码实现,并解释为什么选择这种数据结构。

答案与解析:

java

importjava.util.HashMap;

importjava.util.Map;

importjava.util.LinkedList;

publicclassLRUCacheK,V{

privatefinalintcapacity;

privatefinalMapK,NodeK,Vmap;

privatefinalLinkedListNodeK,Vlist;

staticclassNodeK,V{

Kkey;

Vvalu

文档评论(0)

1亿VIP精品文档

相关文档