版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年腾讯校园招聘技术类考试练习题及答案一、单项选择题(共10题,每题3分,共30分)1.以下关于红黑树与AVL树的描述中,错误的是()A.红黑树的平衡条件比AVL树更宽松B.AVL树的插入/删除操作可能引发多次旋转,而红黑树最多两次旋转C.红黑树的最长路径不超过最短路径的2倍,AVL树的高度差不超过1D.红黑树更适合插入/删除频繁的场景,AVL树更适合查询频繁的场景答案:B解析:AVL树在插入/删除时可能需要进行O(logn)次旋转(如链式旋转),而红黑树通过颜色标记和较少的旋转(最多两次)保持平衡,因此B选项错误。其他选项均正确:红黑树的平衡是“近似平衡”,允许最长路径为最短路径的2倍;AVL树的严格平衡(左右子树高度差≤1)使其查询效率更高,但插入/删除代价更大;红黑树因旋转次数少,更适合频繁更新的场景。2.若某进程在运行中需要访问磁盘数据,此时发生缺页中断,操作系统会执行以下哪一步骤?()A.直接从磁盘读取数据到内存,并更新页表B.检查页表,若该页存在但未被修改,则直接调入内存C.若内存无空闲页框,需选择一个页面换出(页面置换),再调入所需页D.无论页是否在内存,都重新从磁盘加载数据答案:C解析:缺页中断的处理流程为:①检查页表,确认该页是否在内存(有效位为0);②若内存有空闲页框,分配页框并从磁盘调入数据,更新页表;③若内存无空闲页框,执行页面置换算法(如LRU)选择换出页,若换出页被修改过(修改位为1),需先写回磁盘,再调入所需页。因此C正确。A错误,因可能无空闲页框;B错误,缺页中断发生时页表中该页的有效位应为0(不在内存);D错误,若页已在内存则无需重新加载。3.以下TCP连接建立过程的描述中,正确的是()A.客户端发送SYN=1,seq=x;服务器回复SYN=1,ACK=1,seq=y,ack=x+1;客户端回复ACK=1,seq=x+1,ack=y+1B.客户端发送SYN=1,seq=x;服务器回复SYN=1,ACK=0,seq=y,ack=x+1;客户端回复ACK=1,seq=x+1,ack=y+1C.客户端发送SYN=1,seq=x;服务器回复SYN=0,ACK=1,seq=y,ack=x;客户端回复ACK=1,seq=x+1,ack=y+1D.客户端发送SYN=1,seq=x;服务器回复SYN=1,ACK=1,seq=y,ack=x;客户端回复ACK=1,seq=x+1,ack=y+1答案:A解析:TCP三次握手过程为:①客户端发送SYN=1,seq=x(初始序号);②服务器确认,发送SYN=1(表示同步)、ACK=1(确认),seq=y(服务器初始序号),ack=x+1(确认客户端的x);③客户端确认服务器的同步,发送ACK=1,seq=x+1(客户端下一个序号),ack=y+1(确认服务器的y)。因此A正确。B错误,服务器回复必须包含ACK=1;C错误,服务器需发送SYN=1;D错误,服务器的ack应为x+1(确认客户端的SYN)。4.关于数据库索引,以下说法错误的是()A.聚簇索引决定数据在磁盘上的物理存储顺序B.B+树索引的叶子节点存储数据行,非叶子节点存储索引键C.联合索引的顺序会影响查询效率,应将高选择性字段放在前面D.唯一索引可以保证索引列不重复,但允许NULL值(取决于数据库实现)答案:B解析:B+树索引分为聚簇索引和非聚簇索引。聚簇索引的叶子节点存储完整数据行(如MySQLInnoDB的主键索引),而非聚簇索引(二级索引)的叶子节点存储索引键和主键值(需回表查询)。因此B选项描述的是聚簇索引的特性,若题目未明确是聚簇索引,则B错误。其他选项正确:A正确,聚簇索引的物理顺序与数据存储顺序一致;C正确,联合索引的最左匹配原则要求高选择性字段(如区分度大的列)在前;D正确,唯一索引允许NULL(如MySQL中,唯一索引可包含多个NULL,因NULL不相等)。5.以下Python代码的输出结果是()```pythondeffunc(a,b=[]):b.append(a)returnbprint(func(1))print(func(2))```A.[1][2]B.[1][1,2]C.[1][2,1]D.[1][1,2,3]答案:B解析:Python中默认参数在函数定义时初始化,而非每次调用时。因此当第一次调用func(1)时,b指向空列表,添加1后返回[1];第二次调用func(2)时,b仍指向同一个列表(上次调用后的[1]),添加2后返回[1,2]。因此输出为[1]和[1,2],选B。6.对于n个节点的完全二叉树(根节点为1),其第k层(k≥1)的节点数最多为()A.2^(k-1)B.2^kC.min(2^(k-1),n2^(k-1)+1)D.min(2^k,n2^k+1)答案:A解析:完全二叉树的第k层最多有2^(k-1)个节点(满二叉树的情况)。当n足够大时,第k层节点数为2^(k-1);若n较小,可能不足,但题目问“最多”,因此取满二叉树的情况,选A。C为实际节点数(可能不足),但题目问“最多”,故A正确。7.以下关于操作系统死锁的描述中,正确的是()A.死锁的四个必要条件中,“互斥”条件可以被破坏B.银行家算法通过预分配资源来避免死锁C.死锁检测的时间复杂度通常为O(n^3),其中n是进程数D.只要资源分配图中存在环,则一定发生死锁答案:B解析:银行家算法通过模拟资源分配后的状态是否安全(存在安全序列)来避免死锁,B正确。A错误,互斥条件(如打印机等临界资源)通常无法破坏;C错误,死锁检测的时间复杂度与资源类型和进程数相关,一般为O(mn^2)(m为资源类型数);D错误,资源分配图存在环但无等待进程时不发生死锁(如环中的进程都已释放资源)。8.若一个IP数据报的总长度为3000字节(包含20字节IP头),需要分片传输(MTU=1500字节),则第二个分片的偏移量为()A.0B.1480C.185D.370答案:C解析:MTU=1500字节,IP头20字节,每个分片的数据部分最大为1480字节(1500-20)。第一个分片:数据1480字节,总长度1500(20+1480),MF=1(更多分片),偏移量0。第二个分片:剩余数据=3000-20(总头)-1480=1500字节(数据部分),但MTU=1500,因此数据部分1480字节(头20字节),剩余1500-1480=20字节需第三个分片?不,原数据总长度=3000-20=2980字节。第一个分片数据1480,剩余2980-1480=1500字节。第二个分片数据1480(MTU限制),剩余1500-1480=20字节。第二个分片的偏移量=1480/8=185(偏移量以8字节为单位),因此选C。9.以下排序算法中,时间复杂度不受数据初始顺序影响,且空间复杂度为O(1)的是()A.快速排序B.堆排序C.归并排序D.冒泡排序答案:B解析:堆排序的时间复杂度始终为O(nlogn)(无论数据是否有序),空间复杂度O(1)(原地排序)。A错误,快速排序最坏O(n²);C错误,归并排序空间O(n);D错误,冒泡排序最好O(n)(已排序时)。10.以下关于卷积神经网络(CNN)的描述中,错误的是()A.卷积层通过滑动窗口提取局部特征B.池化层可以减少特征图的空间尺寸,降低计算量C.全连接层的作用是将局部特征整合为全局特征D.步长(stride)为2的卷积操作不会改变特征图的宽度和高度答案:D解析:步长为s的卷积操作,输出尺寸计算公式为:(WF+2P)/s+1(W为输入宽度,F为卷积核尺寸,P为填充)。若s=2且无填充,输出尺寸会减小(如W=5,F=3,s=2→(5-3)/2+1=2),因此D错误。其他选项正确:A正确,卷积的局部感受野特性;B正确,池化(如最大池化)通过下采样减少尺寸;C正确,全连接层将高维特征映射到样本标签空间。二、编程题(共2题,每题20分,共40分)题目1:最长无重复字符子串的变形问题描述:给定一个字符串s和一个整数k,找出s中包含最多k个不同字符的最长子串的长度。若k=0,则返回0(假设s非空)。示例:输入:s="eceba",k=2→输出:3(子串"ece"包含2个不同字符)输入:s="aa",k=1→输出:2(子串"aa"包含1个不同字符)要求:用Python实现,时间复杂度O(n),空间复杂度O(1)(字符集为ASCII)。解题思路:使用滑动窗口(双指针)法。维护左右指针left和right,以及一个字典count记录当前窗口内各字符的出现次数。遍历right指针,将字符加入窗口:若窗口内不同字符数≤k,更新最大长度;若超过k,移动left指针,直到不同字符数≤k。关键点:用字典维护字符计数,并用变量unique记录当前不同字符数,避免每次遍历字典统计。代码实现:```pythondeflength_of_longest_substring_k_distinct(s:str,k:int)->int:ifk==0:return0count={}max_len=0left=0unique=0当前窗口不同字符数forrightinrange(len(s)):char=s[right]ifcount.get(char,0)==0:unique+=1count[char]=count.get(char,0)+1当不同字符数超过k时,移动左指针whileunique>k:left_char=s[left]count[left_char]-=1ifcount[left_char]==0:unique-=1left+=1更新最大长度current_len=rightleft+1ifcurrent_len>max_len:max_len=current_lenreturnmax_len测试用例print(length_of_longest_substring_k_distinct("eceba",2))输出3print(length_of_longest_substring_k_distinct("aa",1))输出2```复杂度分析:时间复杂度:O(n),每个字符最多被left和right各访问一次。空间复杂度:O(1),因字符集为ASCII(最多256个字符),字典大小固定。题目2:二叉树的直径问题描述:给定一棵二叉树的根节点root,计算该二叉树的直径。二叉树的直径定义为树中两个节点之间的最长路径的长度(路径可能不经过根节点)。路径长度用边数表示。示例:输入:```1/\23/\45```输出:3(路径4-2-5,边数为2;或2-1-3,边数为2?不,正确路径是4-2-5,边数2?不,示例中最长路径是4-2-1-3,边数3?需确认。实际示例的正确输出应为3,路径为4-2-5的长度是2(边数),而4-2-1-3的长度是3(边数)。)解题思路:二叉树的直径是树中最长路径的边数,该路径可能穿过根节点,也可能在左子树或右子树内部。对于每个节点,其贡献的路径长度为左子树的最大深度+右子树的最大深度。因此,通过后序遍历计算每个节点的左右子树深度,并更新全局最大直径。代码实现:```pythonclassTreeNode:def__init__(self,val=0,left=None,right=None):self.val=valself.left=leftself.right=rightclassSolution:defdiameterOfBinaryTree(self,root:TreeNode)->int:self.max_diameter=0全局最大直径defdepth(node):ifnotnode:return0left_depth=depth(node.left)right_depth=depth(node.right)当前节点的路径长度为左右深度之和current_diameter=left_depth+right_depthifcurrent_diameter>self.max_diameter:self.max_diameter=current_diameter返回当前节点的最大深度(边数=深度-1?不,深度定义为边数。例如,叶子节点深度为0)returnmax(left_depth,right_depth)+1边数,如叶子节点返回1?需要确认定义。depth(root)returnself.max_diameter测试用例构建示例二叉树root=TreeNode(1)root.left=TreeNode(2)root.right=TreeNode(3)root.left.left=TreeNode(4)root.left.right=TreeNode(5)solution=Solution()print(solution.diameterOfBinaryTree(root))输出3(路径4-2-5的边数是2,4-2-1-3的边数是3)```复杂度分析:时间复杂度:O(n),遍历每个节点一次。空间复杂度:O(h),h为树的高度(递归栈深度),最坏O(n)(退化为链表),平均O(logn)(平衡树)。三、系统设计题(30分)题目:设计一个短链接服务(如将/longpath转换为/abc123),要求支持高并发(10万QPS)、高可用(99.99%),并考虑防刷、防攻击、数据持久化。设计思路:1.核心需求分析功能需求:长链接转短链接(生成)、短链接跳转长链接(解析)。非功能需求:高并发(10万QPS)、低延迟(生成/跳转响应<100ms)、高可用(故障快速恢复)、防刷(限制单用户生成频率)、防攻击(如DDoS、恶意生成)、数据持久化(避免短链接失效)。2.短链接生成算法方案选择:自增ID+基数转换。原理:维护一个全局自增ID(如从0开始),将ID转换为62进制(0-9,a-z,A-Z),生成短码(如ID=123→62进制为“1z”)。优势:短码唯一(自增ID唯一);生成速度快(仅需数值转换,无哈希冲突);长度可控(62^6≈568亿,足够支持海量短链接)。优化:分布式ID生成(如雪花算法),避免单点瓶颈;预生成短码池(提前生成一批短码存入缓存,生成时直接取用,减少DB操作)。3.系统架构设计分层架构:```用户→负载均衡(Nginx)→接入层→业务层→存储层(DB+缓存)```接入层:负载均衡(如Nginx或F5):分流请求,支持水平扩展;流量过滤:通过WAF(Web应用防火墙)拦截DDoS、SQL注入等攻击;限流:对单IP/用户的生成请求限流(如每分钟最多100次),防止刷接口。业务层:短链接生成服务:从短码池(缓存)获取可用短码;校验长链接合法性(如URL格式、是否包含恶意内容);存储长链接与短码的映射关系到DB和缓存(Redis)。短链接解析服务:根据短码查询缓存(Redis),存在则直接返回长链接;缓存未命中时查询DB,结果回种缓存(设置合理过期时间,如7天);统计短链接访问量(异步写入Kafka,由离线任务处理)。存储层:缓存(Redis):存储高频访问的短码→长链
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年6年级上中学考试卷子及答案
- 2026年18法考配套测试题及答案
- 2026年18高考语文试题及答案
- 2026年17旅游概论试题及答案
- 2026年6岁小孩智商测试题及答案
- 2026年9套三基试卷及答案
- 2026年2岁认知测试题及答案
- 2026年16年入党培训测试题及答案
- (正式版)DB43∕T 1588.31-2019 《小吃湘菜 第31部分:古丈蒿草粑》
- 办公耗材采购与使用管理指南
- 2026年上海市宝山区高三下学期二模化学试卷和答案
- 年产100万吨液体肥料项目职业病危害预评价报告
- 2026年北京市海淀区高三一模英语试卷(含答案)
- 乡村振兴驻村帮扶工作计划
- DLT5210.1-2021电力建设施工质量验收规程第1部分-土建工程
- 电力公司新竹区营业处课件
- 建筑废土处置方案
- 医院内部控制手册
- 香蕉组培快繁生产过程
- 新沪教牛津版七年级下册英语Unit 1 More practice-Cultural corner课件
- 上肢骨折资料.课件
评论
0/150
提交评论