版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年后端开发笔试题与面试技巧一、编程基础与数据结构(共5题,每题8分,总分40分)1.题目:编写一个函数,实现二叉树的层序遍历(广度优先遍历),并返回遍历结果列表。假设二叉树节点定义如下:pythonclassTreeNode:def__init__(self,val=0,left=None,right=None):self.val=valself.left=leftself.right=right示例输入:python构建一棵二叉树:1/\23/\45root=TreeNode(1)root.left=TreeNode(2)root.right=TreeNode(3)root.left.left=TreeNode(4)root.left.right=TreeNode(5)示例输出:`[1,2,3,4,5]`2.题目:给定一个数组,返回其中重复次数超过一半的元素。假设数组非空,且一定存在这样的元素。示例输入:`[2,2,1,1,1,2,2]`示例输出:`2`3.题目:实现快速排序算法,并说明其时间复杂度和空间复杂度。4.题目:编写一个函数,检查一个字符串是否为有效的括号组合(如`"()"`、`"()[]{}"`)。5.题目:用Python实现一个LRU(最近最少使用)缓存,容量为3。缓存支持`get`和`put`操作。二、数据库与SQL(共4题,每题10分,总分40分)1.题目:假设有以下表结构:sqlCREATETABLEOrders(OrderIDINTPRIMARYKEY,CustomerIDINT,OrderDateDATE,TotalAmountDECIMAL(10,2));CREATETABLECustomers(CustomerIDINTPRIMARYKEY,NameVARCHAR(100),CityVARCHAR(50));查询每个城市的客户数量,以及订单总金额最高的客户姓名。2.题目:编写SQL语句,删除`Orders`表中所有2023年已完成的订单(`OrderDate<'2024-01-01'`),但保留订单ID。3.题目:假设表`Products`存储商品信息,包含字段`ProductID`、`Name`、`Category`、`Price`。编写SQL查询,返回价格在100到200之间的商品数量,按类别分组排序。4.题目:解释SQL中的`JOIN`类型(内连接、左连接、右连接、全外连接),并说明何时使用左连接。三、系统设计与架构(共3题,每题15分,总分45分)1.题目:设计一个简单的短链接系统,要求:-输入长链接,生成短链接(如`/abc123`)。-支持通过短链接重定向到原长链接。-说明如何保证短链接的唯一性和高可用性。2.题目:假设你要设计一个高并发的秒杀系统,请说明:-如何防止超卖?-如何优化数据库写入性能?-如何使用缓存减少数据库压力?3.题目:解释微服务架构的优势和挑战,并说明在哪些场景下适合使用微服务。四、算法与编程(共2题,每题20分,总分40分)1.题目:给定一个字符串,判断是否可以通过回删操作得到一个回文串(如`"abca"`通过删除`'b'`得到`"aca"`)。请实现一个函数,返回最少需要删除的字符数。2.题目:设计一个算法,找出数组中所有不重复的三元组,使得三元组的和等于给定目标值。例如:输入:`nums=[-1,0,1,2,-1,-4]`,目标:`0`输出:`[[-1,-1,2],[-1,0,1]]`五、开放性问题(共1题,25分)1.题目:谈谈你对“云原生”的理解,并举例说明在哪些技术或场景中体现了云原生思想(如容器化、服务网格、无状态服务等)。答案与解析一、编程基础与数据结构1.二叉树层序遍历pythonfromcollectionsimportdequedeflevel_order(root):ifnotroot:return[]queue=deque([root])result=[]whilequeue:node=queue.popleft()result.append(node.val)ifnode.left:queue.append(node.left)ifnode.right:queue.append(node.right)returnresult解析:使用队列实现BFS,按层次遍历节点。时间复杂度O(N),空间复杂度O(N)。2.多数元素pythondefmajority_element(nums):count=0candidate=Nonefornuminnums:ifcount==0:candidate=numcount+=(1ifnum==candidateelse-1)returncandidate解析:Boyer-Moore多数投票算法,时间O(N),空间O(1)。3.快速排序pythondefquick_sort(arr):iflen(arr)<=1:returnarrpivot=arr[len(arr)//2]left=[xforxinarrifx<pivot]middle=[xforxinarrifx==pivot]right=[xforxinarrifx>pivot]returnquick_sort(left)+middle+quick_sort(right)解析:时间复杂度O(NlogN),最坏O(N²);空间复杂度O(logN)(递归栈)。4.有效括号pythondefisValid(s):stack=[]mapping={')':'(','}':'{',']':'['}forcharins:ifcharinmapping:top_element=stack.pop()ifstackelse'#'ifmapping[char]!=top_element:returnFalseelse:stack.append(char)returnnotstack解析:使用栈匹配括号,时间O(N),空间O(N)。5.LRU缓存pythonclassLRUCache:def__init__(self,capacity:int):self.capacity=capacityself.cache={}self.order=[]defget(self,key:int)->int:ifkeyinself.cache:self.order.remove(key)self.order.append(key)returnself.cache[key]return-1defput(self,key:int,value:int)->None:ifkeyinself.cache:self.order.remove(key)eliflen(self.cache)==self.capacity:self.cache.pop(self.order.pop(0))self.cache[key]=valueself.order.append(key)解析:使用哈希表记录键值,双向链表维护访问顺序,时间O(1)。二、数据库与SQL1.城市客户数量与订单金额sqlSELECTc.City,c.NameASTopCustomerFROMCustomerscJOINOrdersoONc.CustomerID=o.CustomerIDGROUPBYc.CityORDERBYSUM(o.TotalAmount)DESC;解析:使用JOIN关联表,GROUPBY分组统计,ORDERBY排序。2.删除2023年订单sqlDELETEFROMOrdersWHEREOrderDate<'2024-01-01'ANDOrderIDNOTIN(SELECTOrderIDFROMOrdersWHEREOrderDate>='2024-01-01');解析:防止误删未完成订单,使用NOTIN子句排除2024年订单。3.商品数量按类别分组sqlSELECTCategory,COUNT()ASProductCountFROMProductsWHEREPriceBETWEEN100AND200GROUPBYCategoryORDERBYProductCountDESC;解析:BETWEEN筛选价格范围,GROUPBY分组,ORDERBY排序。4.JOIN类型-内连接(INNERJOIN):仅返回两个表都匹配的行。-左连接(LEFTJOIN):返回左表所有行,右表匹配行;右表无匹配则返回NULL。-右连接(RIGHTJOIN):返回右表所有行,左表匹配行;左表无匹配则返回NULL。-全外连接(FULLOUTERJOIN):返回两个表的所有行,不匹配的返回NULL。使用左连接场景:查询左表所有数据,即使右表无匹配。三、系统设计与架构1.短链接系统设计-唯一性:使用哈希函数(如SHA-256)生成短码,或自增ID映射。-高可用:使用分布式缓存(Redis)存储短码与长码映射,负载均衡多副本。2.秒杀系统设计-防止超卖:使用分布式锁(RedisSETNX)或数据库行锁。-数据库优化:分库分表、异步写入(消息队列)、热点数据缓存。3.微服务优势与挑战-优势:技术选型灵活、独立扩展、故障隔离。-挑战:分布式事务、跨服务通信、运维复杂度。适用场景:大型复杂系统、多团队协作。四、算法与编程1.回文删除pythondefmin_deletion(s:str)->int:dp=[[False]len(s)for_inrange(len(s))]foriinrange(len(s)-1,-1,-1):forjinrange(i,len(s)):ifs[i]==s[j]:dp[i][j]=i+1<=j-1anddp[i+1][j-1]else:dp[i][j]=dp[i+1][j]ordp[i][j-1]returnlen(s)-dp[0][len(s)-1]解析:动态规划,时间O(N²),空间O(N²)。2.三数之和pythondefthree_sum(nums,target):nums.sort()result=[]foriinrange(len(nums)-2):ifi>0andnums[i]==nums[i-1]:continueleft,right=i+1,len(nums)-1whileleft<right:total=nums[i]+nums[left]+nums[right]iftotal==target:result.append([nums[i],nums[left],nums[right]])whileleft<rightandnums[left]==nums[left+1]:left+=1whileleft<rightandnums[right]==nums[right-1]:right-=1left
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025四川内江市资中县润资水务投资开发有限责任公司招聘8人笔试历年参考题库附带答案详解
- 2025吉林梅河口市东北旅游发展集团有限公司招聘(110人)笔试历年参考题库附带答案详解
- 2025九洲千城置业有限责任公司招聘项目总监测试(四川)笔试历年参考题库附带答案详解
- 2026反垄断监管趋严下连锁企业并购重组策略调整分析
- 2026南非黄金矿业行业市场运行分析及发展趋势与投资战略研究报告
- 2026南非葡萄酒产业摆脱传统模式与新兴市场开拓策略
- 石英晶体振荡器制造工操作规程竞赛考核试卷含答案
- 塔台集中控制机务员岗前跨界整合考核试卷含答案
- 鱼油提炼工成果转化知识考核试卷含答案
- 2026南亚茶叶深加工产业国际市场渠道布局创新突破规划咨询
- 中国石油化工股份有限公司西北油田分公司顺北油田原油外输管道工程环境影响后评价环评报告
- CJ/T 288-2008预制双层不锈钢烟道及烟囱
- s和m关系协议书
- 项目清场协议书
- GB/T 19405.3-2025表面安装技术第3部分:通孔回流焊用元器件规范的标准方法
- 国家开放大学2025年《机电控制工程基础》形考任务1-4答案
- 新生儿听力筛查技术规范解读
- 客户来电登记表(公司内部)
- T-CECS 10400-2024 固废基胶凝材料
- 中国超重肥胖医学营养治疗指南2021
- 石材幕墙施工工艺培训课件
评论
0/150
提交评论