版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年工程师面试技巧及问题解答:实战操作篇一、编程实现题(3题,每题10分)1.题目:实现一个函数,输入一个字符串,返回该字符串中所有唯一字符的列表(重复字符只保留第一次出现的位置)。例如,输入`"hello"`,输出`['h','e','l','o']`。要求时间复杂度为O(n)。2.题目:设计一个简单的LRU(LeastRecentlyUsed)缓存类,支持以下操作:-`get(key)`:获取键对应的值,如果不存在返回-1。-`put(key,value)`:插入或更新键值对,如果缓存已满,则删除最久未使用的元素。缓存容量固定,例如3。3.题目:给定一个包含多个任务的列表,每个任务包含执行时间(秒)和等待时间(秒)。任务按到达顺序排列,同一时间只能执行一个任务。请编写代码,计算所有任务完成的总时间。例如:输入`[(2,1),(3,2),(1,3)]`,输出`10`(即第一个任务等待1秒执行,第二个等待4秒执行,第三个等待7秒执行)。二、系统设计题(2题,每题15分)1.题目:设计一个高并发的短链接生成服务,要求:-支持秒级访问量百万级。-链接长度尽可能短(例如`/xyz123`)。-支持分布式部署,易于水平扩展。2.题目:设计一个实时消息推送系统,要求:-支持单聊和群聊。-保证消息至少99.9%的送达率。-支持离线消息存储和重试机制。三、数据库与SQL题(2题,每题12分)1.题目:假设有一个订单表`orders`(`id`,`user_id`,`amount`,`order_time`),编写SQL查询:-统计每个用户的总订单金额,并按金额降序排列。-如果金额相同,则按用户ID升序排列。2.题目:优化以下SQL查询:sqlSELECTFROMordersWHEREorder_timeBETWEEN'2023-01-01'AND'2023-12-31'ORDERBYuser_id;说明可能的性能问题并提出优化方案(如索引、分页等)。四、算法与数据结构题(3题,每题10分)1.题目:实现快速排序算法,并说明其时间复杂度和适用场景。2.题目:给定一个二叉树,编写代码判断其是否为平衡二叉树(左右子树高度差不超过1)。3.题目:设计一个算法,找出数组中第三大的数,要求时间复杂度为O(n),不能使用排序。五、网络与分布式题(2题,每题15分)1.题目:解释TCP三次握手和四次挥手的过程,并说明每个阶段的作用。2.题目:假设一个分布式系统需要实现服务发现,请比较以下两种方案:-DNS-Consul/Etcd六、操作系统与并发题(2题,每题12分)1.题目:解释进程与线程的区别,并说明多线程编程中的常见问题(如死锁、竞态条件)及其解决方案。2.题目:编写代码实现一个线程安全的计数器(使用互斥锁)。答案与解析一、编程实现题1.答案:pythondefunique_chars(s):seen=set()result=[]forcharins:ifcharnotinseen:seen.add(char)result.append(char)returnresult解析:-使用集合`seen`记录已遍历的字符,保证O(1)时间复杂度查找。-遍历字符串,只保留首次出现的字符。2.答案:pythonclassLRUCache:def__init__(self,capacity):self.capacity=capacityself.cache={}self.order=[]defget(self,key):ifkeyinself.cache:self.order.remove(key)self.order.append(key)returnself.cache[key]return-1defput(self,key,value):ifkeyinself.cache:self.order.remove(key)eliflen(self.cache)>=self.capacity:oldest=self.order.pop(0)delself.cache[oldest]self.cache[key]=valueself.order.append(key)解析:-使用字典`cache`存储键值对,列表`order`记录访问顺序。-`get`操作时移动元素到末尾表示最近使用。-`put`操作时,如果缓存已满,删除最久未使用的元素(列表头部)。3.答案:pythondeftotal_time(tasks):tasks.sort(key=lambdax:x[1])#按等待时间排序current_time=0forduration,waitintasks:current_time+=waitcurrent_time+=durationreturncurrent_time解析:-按等待时间排序,优先执行等待时间短的任务。-累加每个任务的等待时间和执行时间。二、系统设计题1.答案:方案:-使用Base62编码(`a-z`,`A-Z`,`0-9`)将长ID映射为短字符串。-分布式缓存(如Redis)存储映射关系,支持热点键。-异步写入磁盘,避免阻塞。2.答案:方案:-消息队列(如Kafka)存储未送达消息。-客户端离线时,消息持久化到数据库。-重试机制(如指数退避)。三、数据库与SQL题1.答案:sqlSELECTuser_id,SUM(amount)AStotal_amountFROMordersGROUPBYuser_idORDERBYtotal_amountDESC,user_idASC;解析:-`SUM`统计金额,`GROUPBY`分组。-`ORDERBY`多条件排序。2.答案:优化方案:-为`order_time`和`user_id`添加复合索引。-使用`LIMIT`分页查询(如`LIMIT100OFFSET0`)。-避免查询``,只取需要的列。四、算法与数据结构题1.答案:pythondefquicksort(arr):iflen(arr)<=1:returnarrpivot=arr[len(arr)//2]left=[xforxinarrifx<pivot]middle=[xforxinarrifx==pivot]right=[xforxinarrifx>pivot]returnquicksort(left)+middle+quicksort(right)解析:-时间复杂度:平均O(nlogn),最坏O(n²)。-适用场景:随机数据或已部分排序数据。2.答案:pythondefis_balanced(root):defcheck(node):ifnotnode:return0,Trueleft_height,left_balanced=check(node.left)right_height,right_balanced=check(node.right)returnmax(left_height,right_height)+1,left_balancedandright_balancedandabs(left_height-right_height)<=1returncheck(root)[1]解析:-递归计算左右子树高度,判断是否平衡。3.答案:pythondefthird_largest(nums):first,second,third=float('-inf'),float('-inf'),float('-inf')fornuminnums:ifnum>first:third=secondsecond=firstfirst=numeliffirst>num>second:third=secondsecond=numelifsecond>num>third:third=numreturnthirdifthird!=float('-inf')elseNone解析:-维护三个变量记录前三大的数。五、网络与分布式题1.答案:-三次握手:1.客户端发送SYN包。2.服务器回复SYN-ACK包。3.客户端发送ACK包。-四次挥手:1.客户端发送FIN包。2.服务器回复ACK包。3.服务器发送FIN包。4.客户端回复ACK包。2.答案:-DNS:-优点:简单易部署。-缺点:单点故障,无法动态更新。-Consul/Etcd:-优点:支持服务健康检查,动态配置。-缺点:学习成本高。六、操作系统与并发题1.答案:-进程:独立内存空间,资源分配单元。-线程:共享内存空间,轻量级单元。-常见问题:-死锁:资源循环等待。-竞态条件:多个线程修改共享数据。-解决方案:互斥锁、信号量、死锁避免算法。2.答案:pythonimportthreadingc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中数学微积分概念的生活化教学案例课题报告教学研究课题报告
- 2024年武汉学院马克思主义基本原理概论期末考试模拟试卷
- 基于机器学习的数字化学生评价结果可视化在初中数学教学中的应用教学研究课题报告
- 2025年浙江工业职业技术学院马克思主义基本原理概论期末考试真题汇编
- 2024年邵阳职业技术学院马克思主义基本原理概论期末考试真题汇编
- 河北省保定市2025年七年级上学期期末考试英语试题附答案
- 2024年武汉外语外事职业学院马克思主义基本原理概论期末考试真题汇编
- 2025年烟台职业学院马克思主义基本原理概论期末考试笔试真题汇编
- 2024年四平现代职业学院马克思主义基本原理概论期末考试真题汇编
- 2025年湘潭医卫职业技术学院马克思主义基本原理概论期末考试笔试真题汇编
- 银监局法律风险管理办法
- 评估报告-G315交叉口安评报告
- GB/T 45683-2025产品几何技术规范(GPS)几何公差一般几何规范和一般尺寸规范
- 销售部年终总结及明年工作计划
- 工作计划执行跟踪表格:工作计划执行情况统计表
- 城市道路路基土石方施工合同
- 教学计划(教案)-2024-2025学年人教版(2024)美术一年级上册
- 国家基本公共卫生服务项目之健康教育
- DL∕ T 1166-2012 大型发电机励磁系统现场试验导则
- 新人教版日语七年级全一册单词默写清单+答案
- HJ 636-2012 水质 总氮的测定 碱性过硫酸钾消解紫外分光光度法
评论
0/150
提交评论