- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第PAGE页共NUMPAGES页
2025年软件开发工程师面试宝典与经典题目解析
一、编程基础(5题,每题10分)
题目1:数据结构实现
题目:
实现一个LRU(最近最少使用)缓存机制,使用哈希表和双向链表实现。要求:
1.支持get(key)和put(key,value)操作
2.get操作返回键对应的值,若不存在返回-1
3.put操作将键值对插入缓存,如果键已存在则更新值,如果缓存已满则删除最久未使用的元素
答案:
python
classListNode:
def__init__(self,key=0,value=0,prev=None,next=None):
self.key=key
self.value=value
self.prev=prev
self.next=next
classLRUCache:
def__init__(self,capacity:int):
self.capacity=capacity
self.cache={}
self.head=ListNode()
self.tail=ListNode()
self.head.next=self.tail
self.tail.prev=self.head
defget(self,key:int)-int:
ifkeyinself.cache:
node=self.cache[key]
self._move_to_head(node)
returnnode.value
return-1
defput(self,key:int,value:int)-None:
ifkeyinself.cache:
node=self.cache[key]
node.value=value
self._move_to_head(node)
else:
node=ListNode(key,value)
self.cache[key]=node
self._add_node(node)
iflen(self.cache)self.capacity:
tail=self._pop_tail()
delself.cache[tail.key]
def_move_to_head(self,node:ListNode)-None:
self._remove_node(node)
self._add_node(node)
def_add_node(self,node:ListNode)-None:
node.prev=self.head
node.next=self.head.next
self.head.next.prev=node
self.head.next=node
def_remove_node(self,node:ListNode)-None:
prev_node=node.prev
next_node=node.next
prev_node.next=next_node
next_node.prev=prev_node
def_pop_tail(self)-ListNode:
res=self.tail.prev
self._remove_node(res)
returnres
题目2:算法复杂度分析
题目:
给定一个未排序的整数数组,请设计一个算法,找出其中不重复的数字,并统计其出现次数。要求:
1.时间复杂度O(n)
2.空间复杂度O(1)
答案:
python
deffind_unique_numbers(nums):
fromcollectionsimportdefaultdict
count=defaultdict(int)
fornuminnums:
count[num]+=1
unique=[]
frequency=[]
fornum,cntincount.items():
ifcnt==1:
unique.append(num)
frequency.append(cnt)
returnunique,frequency
题目3:递归算法
题目:
实现一个函数,输入一个整数n,返回所有可能的二叉搜索树。例如,输入3,应返回所有可能的二叉搜索树的结构。
答案:
python
fromtypingimportList,Optional
classTreeNode:
def__init__(self,val=0,left=None,right=None):
self.v
您可能关注的文档
- 2025年营养师职业资格认证模拟题及解析.docx
- 2025年财务会计高级实务操作模拟题及解答指南.docx
- 2025年知名企业IT工程师招聘面试模拟题及答案解析.docx
- 2025年艺术设计行业招聘面试指南及模拟题解答.docx
- 2025年电子商务师认证考试面试指南与模拟题.docx
- 2025年知名企业人力资源总监招聘面试题详解及策略.docx
- 2025年诚通集团求职面试技巧与模拟题答案.docx
- 2025年财务会计中级职称考试模拟题与答案详解.docx
- 2025年高级网络推广专员求职攻略网络营销策略与执行预测题.docx
- 2025年行政管理岗位招聘面试攻略与常见问题解答.docx
- 2026年周口市城乡一体化示范区招聘公益性岗位人员10人备考题库最新.docx
- 2025新疆六师公安机关面向社会招聘警务辅助人员55人考前自测高频考点模拟试题附答案.docx
- 2025江西省交投数智科技有限公司招聘12人笔试备考试题最新.docx
- 2025新疆兵投检验检测有限责任公司市场化招聘4人备考题库最新.docx
- 2025年莒南县司法局下属单位招聘备考题库附答案.docx
- 2025年陵县体育局下属单位招聘备考题库附答案.docx
- 2025年罗源县发改委下属事业单位招聘笔试参考题库附答案.docx
- 2025湖北交投宜昌高速公路建设管理有限公司管理人员遴选5人备考题库附答案.docx
- 2025广东深圳市福田区教育科学研究院市内选调教研员11人备考题库最新.docx
- 2025广东广州市岑村强制隔离戒毒所招聘警务辅助人员3人备考题库最新.docx
原创力文档


文档评论(0)