2026年京东高级工程师面试题及答案解析.docxVIP

  • 0
  • 0
  • 约7.01千字
  • 约 19页
  • 2026-01-05 发布于福建
  • 举报

2026年京东高级工程师面试题及答案解析.docx

第PAGE页共NUMPAGES页

2026年京东高级工程师面试题及答案解析

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

1.题目(20分):

实现一个LRU(LeastRecentlyUsed)缓存,支持缓存容量设定,当缓存满时,最久未使用的元素将被移除。要求使用链表和哈希表结合的方式实现,并说明时间复杂度。

答案解析:

LRU缓存的核心是快速访问和快速更新最近使用记录。使用双向链表维护访问顺序,哈希表(HashMap)实现O(1)时间复杂度的查找。具体实现步骤如下:

1.数据结构设计:

-双向链表:头节点指向最近使用元素,尾节点指向最久未使用元素。

-哈希表:键为缓存值,值为链表节点(用于O(1)查找)。

2.关键操作:

-get(key):若哈希表中存在key,则将对应节点移动到链表头部,返回值;否则返回-1。

-put(key,value):

-若key已存在,更新值,移动到链表头部。

-若key不存在:

-若缓存已满,删除链表尾节点(最久未使用),并从哈希表中移除对应键。

-新增节点,添加到链表头部,并插入哈希表。

3.时间复杂度:get和put均为O(1)。

4.代码示例(伪代码):

java

classLRUCache{

MapInteger,Nodemap;

Nodehead,tail;

intcapacity;

Node{intkey,value,prev,next;}

LRUCache(intcapacity){

this.capacity=capacity;

map=newHashMap();

head=newNode(0,0);

tail=newNode(0,0);

head.next=tail;

tail.prev=head;

}

get(intkey){

if(map.containsKey(key)){

Nodenode=map.get(key);

moveToHead(node);

returnnode.value;

}

return-1;

}

put(intkey,intvalue){

if(map.containsKey(key)){

Nodenode=map.get(key);

node.value=value;

moveToHead(node);

}else{

if(map.size()==capacity){

map.remove(tail.prev.key);

removeNode(tail.prev);

}

NodenewNode=newNode(key,value);

map.put(key,newNode);

addNode(newNode);

}

}

privatevoidmoveToHead(Nodenode){

removeNode(node);

addNode(node);

}

privatevoidaddNode(Nodenode){

node.prev=head;

node.next=head.next;

head.next.prev=node;

head.next=node;

}

privatevoidremoveNode(Nodenode){

node.prev.next=node.next;

node.next.prev=node.prev;

}

}

2.题目(20分):

给定一个包含重复元素的数组,找出所有不重复的三元组,使得这三个数的和为0。例如,输入`[-1,0,1,2,-1,-4]`,输出`[[-1,-1,2],[-1,0,1]]`。要求时间复杂度不超过O(n2)。

答案解析:

三数之和问题的关键在于固定一个数,然后用双指针法在剩余部分查找另外两个数。具体步骤如下:

1.排序:首先对数组排序,方便跳过重复元素。

2.固定第一个数:遍历数组,对于每个数`nums[i]`,若`nums[i]`大于0,直接跳出(因为三数之和不可能为0)。

3.双指针法:

-初始化左指针`left=i+1`,右指针`right=n-1`。

-计算`sum=nums[i]+nums[left]+nums[right]`:

-若`sum==0`,记录三元组,并移动`left`和`right`跳过重复值。

-若`sum0`,移动`left`右移增大和。

-若`sum0`,移动`right`左移减小和。

4.代码示例(伪代码):

java

ListListIntegerthreeSum(in

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档