- 0
- 0
- 约7.01千字
- 约 19页
- 2026-01-05 发布于福建
- 举报
第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
您可能关注的文档
- 2026年营销策划师面试问题集及策略.docx
- 2026年机械总院销售经理产品知识考核题库含答案.docx
- 2026年法医考古师面试题及答案.docx
- 2026年腾讯投资经理面试经验及答案解析.docx
- 2026年数据分析师的技能要求与考核内容.docx
- 2026年数据库原理与应用SQL学习指导与习题含答案.docx
- 2026年公共卫生护士考试题及答案解析.docx
- 2026年创新思维面试题及产品创新案例分析含答案.docx
- 2026年手机Ap设计专家面试题.docx
- 2026年大商集团投资经理面试题库及解析.docx
- 三年级下册语文1-8单元默写通关训练(含答案)(2).docx
- 2026年及未来5年市场数据中国金属钒市场发展规划及投资战略可行性预测报告.docx
- 2026年及未来5年市场数据中国金属工艺品行业全景调研及投资可行性报告.docx
- 2026年及未来5年市场数据中国金属家具市场分析及投资战略研究预测可行性报告.docx
- 2026年及未来5年市场数据中国金属膜电阻器行业市场需求预测与投资战略规划分析报告.docx
- 2026年及未来5年市场数据中国金银花行业市场发展战略分析及投资前景专项预测报告.docx
- 2026年及未来5年市场数据中国金银花行业市场研究及投资战略预测报告.docx
- 2026年及未来5年市场数据中国抗氧化剂市场专项调查分析及投资前景预测报告.docx
- 2026年及未来5年市场数据中国救护车市场运行格局及投资战略研究报告.docx
- 2026年及未来5年市场数据中国精细化工行业发展前景预测及投资分析报告.docx
最近下载
- 山东省青岛市20000吨年高档缝纫线用涤纶长丝搬迁20000吨年高档缝纫线用涤纶长丝搬迁(修改).pdf VIP
- 四川省南充市仪陇县2025-2026学年七年级上学期期末语文试题(含答案).docx VIP
- (一模)乌鲁木齐地区2026年高三年级第一次质量物理试卷(含答案).pdf
- 中小学课件 英语阅读课 The Enormous Turnip.pptx VIP
- 山东省日照市开发区2024-2025学年七年级上学期期末生物试题(含答案).docx VIP
- 绿植租摆服务方案设计.docx VIP
- 质量管理体系与措施.docx VIP
- 骨龄的相关课件.pptx VIP
- 一种航空器系统定量相似性分析方法、装置及介质.pdf VIP
- 固定矫治器和矫治技术方丝.ppt VIP
原创力文档

文档评论(0)