2026年腾讯技术面试题集_第1页
2026年腾讯技术面试题集_第2页
2026年腾讯技术面试题集_第3页
2026年腾讯技术面试题集_第4页
2026年腾讯技术面试题集_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2026年腾讯技术面试题集一、编程基础(共5题,每题10分)1.数组旋转问题题目:给定一个数组`nums`和一个整数`k`,将数组向右旋转`k`步。例如,输入`[1,2,3,4,5]`和`k=2`,输出`[4,5,1,2,3]`。要求:时间复杂度O(n),空间复杂度O(1)。2.字符串反转题目:编写一个函数,反转字符串中的单词顺序,但保持单词内部字符顺序不变。例如,输入`"helloworld"`,输出`"worldhello"`。要求:不使用额外空间。3.链表合并题目:合并两个有序链表,返回合并后的有序链表头节点。例如,输入`1->2->4`和`1->3->4`,输出`1->1->2->3->4->4`。4.爬楼梯问题题目:假设你正在爬楼梯,每次可以爬1或2步,问到达第`n`级楼梯有多少种不同方法?(例如,`n=3`时,共有3种方法:1+1+1、1+2、2+1)。要求:使用动态规划解决。5.判断二叉树是否对称题目:给定一个二叉树,判断其是否是对称的。例如:1/\22/\/\3443输出:对称。要求:递归或迭代解法均可。二、算法设计(共4题,每题15分)1.LRU缓存机制题目:设计LRU(LeastRecentlyUsed)缓存机制,支持`get`和`put`操作。`get(key)`返回键对应的值,若不存在返回-1;`put(key,value)`将键值对插入缓存,如果键已存在则更新值,并使该键成为最近最使用。缓存容量为`capacity`。要求:使用哈希表和双向链表实现。2.最长有效括号题目:给定一个字符串只包含`'('`和`')'`,找出最长有效(格式正确)括号的长度。例如,输入`"(()"`,输出`2`。要求:动态规划解法。3.矩阵的最小路径和题目:给定一个`mxn`的矩阵,从左上角出发,只能向右或向下移动,到达右下角的最小路径和。例如:[[1,3,1],[1,5,1],[4,2,1]]输出:7(1→3→1→1→1)。要求:动态规划解法。4.分享牛牛题目:设计一个算法,统计给定字符串中所有单词的频率,并按频率从高到低排序。如果频率相同,按字典序排序。例如,输入`"helloworldhello"`,输出:`{"hello":2,"world":1}`。要求:使用哈希表和排序。三、系统设计(共3题,每题20分)1.设计短链接系统题目:设计一个短链接系统,将长链接转换为短链接,并支持通过短链接跳转回原链接。例如,`/abc123`对应`/abc`。要求:支持高并发访问,并保证短链接唯一性。2.设计消息队列题目:设计一个简单的消息队列(如Kafka的简化版),支持生产者`push`消息、消费者`pull`消息,并保证消息的顺序性。要求:考虑消息存储和分发机制。3.设计微博点赞功能题目:设计微博的点赞功能,支持用户对微博点赞/取消点赞,并实时展示给相关用户。要求:考虑高并发场景下的数据一致性问题。四、数据库与中间件(共4题,每题15分)1.SQL查询优化题目:给定以下表结构:User(idINT,nameVARCHAR,ageINT)Post(idINT,user_idINT,contentTEXT,created_atDATETIME)查询:找出年龄大于20的用户及其发布的最新帖子内容。要求:写出SQL语句,并说明优化思路。2.Redis缓存设计题目:如何使用Redis缓存热点数据(如商品详情页),并设置合理的过期时间和缓存穿透策略?要求:说明缓存更新和失效处理机制。3.MySQL事务隔离级别题目:解释MySQL的四种事务隔离级别(读未提交、读已提交、可重复读、串行化),并举例说明脏读、不可重复读、幻读的产生场景。4.Kafka消息重复问题题目:在使用Kafka时,如何避免消息重复消费?要求:说明解决方案及适用场景。五、分布式与微服务(共3题,每题20分)1.分布式锁实现题目:设计一个分布式锁,支持高并发场景下的资源互斥。可以使用Redis或Zookeeper实现。要求:说明实现原理和注意事项。2.负载均衡策略题目:比较常见的负载均衡算法(如轮询、随机、最少连接、加权轮询),并说明其优缺点。要求:结合实际场景选择合适的算法。3.CAP理论题目:解释CAP理论(一致性、可用性、分区容错性),并举例说明在分布式系统中如何进行取舍。六、网络安全与系统稳定性(共3题,每题20分)1.JWT认证题目:解释JWT(JSONWebToken)的原理和流程,并说明其优缺点。要求:结合实际应用场景。2.系统容灾设计题目:设计一个高可用系统,要求支持异地多活,并能自动切换。要求:说明核心技术和部署方案。3.DDoS攻击防御题目:常见的DDoS攻击类型有哪些?如何防御?要求:结合CDN和云安全服务说明。答案与解析一、编程基础1.数组旋转问题答案:pythondefrotate(nums,k):n=len(nums)k=k%nnums[:]=nums[-k:]+nums[:-k]解析:先对`k`取模,避免重复旋转。将数组分为两部分,分别反转后拼接。时间O(n),空间O(1)。2.字符串反转答案:pythondefreverse_words(s):words=s.split()return''.join(words[::-1])解析:先按空格分割,反转单词顺序再拼接。不使用额外空间。3.链表合并答案:pythondefmergeTwoLists(l1,l2):dummy=ListNode(0)cur=dummywhilel1andl2:ifl1.val<l2.val:cur.next=l1l1=l1.nextelse:cur.next=l2l2=l2.nextcur.next=l1orl2returndummy.next解析:使用虚拟头节点简化边界处理。时间O(n),空间O(1)。4.爬楼梯问题答案:pythondefclimbStairs(n):dp=[0](n+1)dp[0]=1foriinrange(1,n+1):dp[i]=dp[i-1]+dp[i-2]returndp[n]解析:动态规划,`dp[i]=dp[i-1]+dp[i-2]`。时间O(n),空间O(n)。可优化为O(1)。5.判断二叉树是否对称答案:pythondefisSymmetric(root):defcheck(left,right):ifnotleftandnotright:returnTrueifnotleftornotright:returnFalsereturn(left.val==right.val)andcheck(left.left,right.right)andcheck(left.right,right.left)returncheck(root,root)解析:递归判断镜像对称。时间O(n),空间O(n)。二、算法设计1.LRU缓存机制答案:pythonclassLRUCache:def__init__(self,capacity):self.capacity=capacityself.cache=OrderedDict()defget(self,key):ifkeynotinself.cache:return-1self.cache.move_to_end(key)returnself.cache[key]defput(self,key,value):ifkeyinself.cache:self.cache.move_to_end(key)self.cache[key]=valueiflen(self.cache)>self.capacity:self.cache.popitem(last=False)解析:使用`OrderedDict`实现LRU,`move_to_end`维护最近使用顺序。2.最长有效括号答案:pythondeflongestValidParentheses(s):stack=[-1]max_len=0fori,cinenumerate(s):ifc=='(':stack.append(i)else:stack.pop()ifnotstack:stack.append(i)else:max_len=max(max_len,i-stack[-1])returnmax_len解析:栈记录括号位置,计算最大间隔。时间O(n),空间O(n)。3.矩阵的最小路径和答案:pythondefminPathSum(grid):m,n=len(grid),len(grid[0])dp=[[0]nfor_inrange(m)]dp[0][0]=grid[0][0]foriinrange(1,m):dp[i][0]=dp[i-1][0]+grid[i][0]forjinrange(1,n):dp[0][j]=dp[0][j-1]+grid[0][j]foriinrange(1,m):forjinrange(1,n):dp[i][j]=min(dp[i-1][j],dp[i][j-1])+grid[i][j]returndp[-1][-1]解析:动态规划,`dp[i][j]`表示到达`(i,j)`的最小路径和。时间O(mn),空间O(mn)。4.分享牛牛答案:pythonfromcollectionsimportCounterdefword_frequency(s):counter=Counter(s.split())returndict(sorted(counter.items(),key=lambdax:(-x[1],x[0])))解析:使用`Counter`统计频率,排序时先按频率降序,再按字典序升序。三、系统设计1.设计短链接系统答案:pythonimportbase64importhashlibclassShortLink:def__init__(self):self.map={}defencode(self,long_url):hash_obj=hashlib.md5(long_url.encode())short_code=base64.urlsafe_b64encode(hash_obj.digest())[:6].decode()self.map[short_code]=long_urlreturnf"/{short_code}"defdecode(self,short_url):short_code=short_url.split('/')[-1]returnself.map.get(short_code,"URLnotfound")解析:使用MD5+Base64压缩,保证唯一性。可结合Redis存储。2.设计消息队列答案:pythonfromcollectionsimportdequeclassMessageQueue:def__init__(self):self.queue=deque()ducer_lock=threading.Lock()self.consumer_lock=threading.Lock()defpush(self,message):withducer_lock:self.queue.append(message)defpull(self):withself.consumer_lock:ifself.queue:returnself.queue.popleft()returnNone解析:使用`deque`实现FIFO队列,加锁保证线程安全。3.设计微博点赞功能答案:pythonclassLikeSystem:def__init__(self):self.likes=defaultdict(set)self.user_likes=defaultdict(set)deflike(self,user_id,post_id):withthreading.Lock():ifpost_idnotinself.likes[user_id]:self.likes[user_id].add(post_id)self.user_likes[post_id].add(user_id)defunlike(self,user_id,post_id):withthreading.Lock():ifpost_idinself.likes[user_id]:self.likes[user_id].remove(post_id)self.user_likes[post_id].remove(user_id)defget_likes(self,post_id):returnlist(self.user_likes[post_id])解析:使用哈希表记录用户和帖子的点赞关系,支持高并发操作。四、数据库与中间件1.SQL查询优化答案:sqlSELECT,p.contentFROMUseruJOINPostpONu.id=p.user_idWHEREu.age>20ORDERBYp.created_atDESC,p.idDESCLIMIT1;解析:使用`JOIN`关联表,按年龄筛选并按时间排序。可优化为子查询缓存最新帖子。2.Redis缓存设计答案:-设置过期时间:`EXPIREkey3600`(1小时)。-缓存穿透:使用布隆过滤器或缓存空值。-更新策略:主动更新或被动更新(定时过期)。3.MySQL事务隔离级别脏读:读未提交,A未提交修改,B读取到脏数据。不可重复读:可重复读,A读B数据,B提交修改,A再次读数据不一致。幻读:可重复读,A读B数据范围,B插入新行,A再次读数据范围不一致。4.Kafka消

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论