- 0
- 0
- 约7.26千字
- 约 24页
- 2026-01-29 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年软件工程师面试题及答案
一、编程能力测试(共5题,每题20分,总分100分)
题目1(20分):实现一个LRU缓存机制
要求:
-使用Python或Java实现LRU(LeastRecentlyUsed)缓存机制
-支持get和put操作
-get操作返回缓存中对应键的值,如果不存在则返回-1
-put操作将键值对插入缓存中,如果缓存已满则删除最久未使用的项
-时间复杂度为O(1)
python
classLRUCache:
def__init__(self,capacity:int):
初始化双向链表节点
self.head=Node(0,0)
self.tail=Node(0,0)
self.head.next=self.tail
self.tail.prev=self.head
self.capacity=capacity
self.cache={}
defget(self,key:int)-int:
ifkeyinself.cache:
node=self.cache[key]
self._remove(node)
self._add(node)
returnnode.value
return-1
defput(self,key:int,value:int)-None:
ifkeyinself.cache:
self._remove(self.cache[key])
node=Node(key,value)
self.cache[key]=node
self._add(node)
iflen(self.cache)self.capacity:
lru=self.tail.prev
self._remove(lru)
delself.cache[lru.key]
def_remove(self,node:Node)-None:
delself.cache[node.key]
node.prev.next=node.next
node.next.prev=node.prev
def_add(self,node:Node)-None:
node.next=self.head.next
node.next.prev=node
self.head.next=node
node.prev=self.head
classNode:
def__init__(self,key:int,value:int):
self.key=key
self.value=value
self.prev=None
self.next=None
答案解析:
-使用双向链表+哈希表实现LRU缓存
-双向链表维护访问顺序,头节点是最近访问,尾节点是最久未访问
-哈希表实现O(1)时间复杂度的get操作
-添加节点时将节点移动到链表头部,删除节点时从链表尾部删除
-当缓存容量超出限制时,删除链表尾部节点(最久未使用)
题目2(20分):实现一个二叉树的深度优先遍历
要求:
-使用递归方式实现二叉树的深度优先遍历(前序、中序、后序)
-可以选择返回遍历结果的列表或使用回调函数处理每个节点
-可以使用任意编程语言实现
python
定义二叉树节点
classTreeNode:
def__init__(self,val=0,left=None,right=None):
self.val=val
self.left=left
self.right=right
defpreorder_traversal(root:TreeNode):
result=[]
defdfs(node):
ifnotnode:
return
result.append(node.val)
dfs(node.left)
dfs(node.right)
dfs(root)
returnresult
definorder_traversal(root:TreeNode):
result=[]
defdfs(node):
ifnotnode:
return
dfs(node.left)
result.append(node.val)
dfs(node.right)
dfs(root)
returnresult
defpostorder_traversal(root:TreeNode):
result=[]
defdfs(node):
ifnotnode:
return
dfs(
您可能关注的文档
- 2026年电子工程师应聘常见题目分析.docx
- 旅游企业资料员面试问题及答案.docx
- 2026年人力资源主管面试宝典及参考答案.docx
- 行业分析报告信用评级业务面试常见问题解析.docx
- 程序设计技能考试参考试题及答案详解.docx
- 2026年中国联通数据中心维护人员考核标准.docx
- 腾讯项目经理助理面试题库及答案解析.docx
- 2026年考试题集网络运维管理与维护技巧.docx
- 游戏推广商面试题及答案.docx
- 青岛旅游策划师面试要点与答案参考.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
原创力文档

文档评论(0)