版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
字节跳动2026届秋季招聘面试备考手册与题库一、编程能力测试(共5题,每题10分,总分50分)1.题目:编写一个函数,实现判断一个字符串是否为“回文串”。回文串是指正序和倒序读都一样的字符串,例如“madam”或“racecar”。要求不使用额外的存储空间,时间复杂度尽可能低。答案:pythondefis_palindrome(s:str)->bool:left,right=0,len(s)-1whileleft<right:ifs[left].lower()!=s[right].lower():returnFalseleft+=1right-=1returnTrue解析:通过双指针法,从字符串两端向中间遍历,比较字符是否相同。忽略大小写,提高容错性。时间复杂度为O(n),空间复杂度为O(1)。2.题目:给定一个链表,实现删除链表中的所有重复元素,保留一个重复元素。例如,链表为1->2->3->3->4->4->5,删除后为1->2->3->4->5。答案:pythonclassListNode:def__init__(self,val=0,next=None):self.val=valself.next=nextdefdelete_duplicates(head:ListNode)->ListNode:dummy=ListNode(0,head)prev,curr=dummy,headwhilecurr:ifcurr.nextandcurr.val==curr.next.val:whilecurr.nextandcurr.val==curr.next.val:curr=curr.nextprev.next=curr.nextelse:prev=prev.nextcurr=curr.nextreturndummy.next解析:使用虚拟头节点简化边界处理。通过快慢指针法,当发现重复时,跳过所有重复节点。时间复杂度为O(n),空间复杂度为O(1)。3.题目:实现一个LRU(最近最少使用)缓存,支持get和put操作。LRU缓存最多容纳固定数量的元素,当缓存满时,删除最久未使用的元素。答案:pythonclassLRUCache:def__init__(self,capacity:int):self.capacity=capacityself.cache={}self.head,self.tail=ListNode(0,0),ListNode(0,0)self.head.next=self.tailself.tail.prev=self.headdefget(self,key:int)->int:ifkeyinself.cache:node=self.cache[key]self._remove(node)self._add(node)returnnode.valuereturn-1defput(self,key:int,value:int)->None:ifkeyinself.cache:self._remove(self.cache[key])node=ListNode(key,value)self.cache[key]=nodeself._add(node)iflen(self.cache)>self.capacity:lru=self.head.nextself._remove(lru)delself.cache[lru.key]def_remove(self,node:ListNode)->None:delself.cache[node.key]node.prev.next=node.nextnode.next.prev=node.prevdef_add(self,node:ListNode)->None:node.next=self.tail.prevnode.next.prev=nodeself.tail.prev=nodenode.prev=self.tail.prev.prev解析:使用双向链表+哈希表实现。链表维护访问顺序,哈希表实现O(1)访问。get时将节点移到尾部,put时先删除旧节点,再添加新节点,若超出容量则删除头部节点。4.题目:给定一个非空数组,返回所有可能的全排列。例如,输入[1,2,3],返回[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]。答案:pythondefpermute(nums:List[int])->List[List[int]]:defbacktrack(path,used,res):iflen(path)==len(nums):res.append(path.copy())returnforiinrange(len(nums)):ifnotused[i]:used[i]=Truepath.append(nums[i])backtrack(path,used,res)path.pop()used[i]=Falseres=[]used=[False]len(nums)backtrack([],used,res)returnres解析:回溯算法实现全排列。使用used数组记录元素是否被使用,避免重复。时间复杂度为O(n!),空间复杂度为O(n)。5.题目:实现一个二叉树的最大深度(最大高度)计算。例如,给定二叉树[3,9,20,null,null,15,7],最大深度为3。答案:pythonclassTreeNode:def__init__(self,val=0,left=None,right=None):self.val=valself.left=leftself.right=rightdefmax_depth(root:TreeNode)->int:ifnotroot:return0return1+max(max_depth(root.left),max_depth(root.right))解析:递归计算左右子树的最大深度,取较大值加1。时间复杂度为O(n),空间复杂度为O(h)(h为树的高度)。二、算法设计题(共4题,每题15分,总分60分)1.题目:设计一个算法,实现LRU缓存的高效实现。要求支持get和put操作,且时间复杂度为O(1)。答案:参考第一题的LRUCache实现。使用双向链表维护访问顺序,哈希表实现O(1)访问。get时将节点移到尾部,put时先删除旧节点,再添加新节点,若超出容量则删除头部节点。解析:LRU缓存的核心在于高效更新访问顺序。双向链表提供O(1)的删除和插入操作,哈希表提供O(1)的节点查找。整体时间复杂度为O(1),空间复杂度为O(capacity)。2.题目:设计一个算法,实现字符串的URL化。例如,输入"LeetCode%20is%20cool",转换为"/LeetCode%20is%20cool"。答案:pythondefurlify(s:str,length:int)->str:returns[:length].replace("%20","")解析:直接截取前length个字符,将"%20"替换为""。时间复杂度为O(n),空间复杂度为O(n)。3.题目:设计一个算法,实现二叉树的层序遍历(广度优先遍历)。例如,给定二叉树[3,9,20,null,null,15,7],输出[[3],[9,20],[15,7]]。答案:pythondeflevel_order(root:TreeNode)->List[List[int]]:ifnotroot:return[]res,queue=[],[root]whilequeue:level=[]for_inrange(len(queue)):node=queue.pop(0)level.append(node.val)ifnode.left:queue.append(node.left)ifnode.right:queue.append(node.right)res.append(level)returnres解析:使用队列实现层序遍历。每一层遍历所有节点,将子节点加入队列。时间复杂度为O(n),空间复杂度为O(n)。4.题目:设计一个算法,实现判断一个无向图是否为二分图。二分图是指可以将节点分成两个集合,使得任意两个相邻节点不在同一集合。答案:pythondefis_bipartite(graph:List[List[int]])->bool:color={}defdfs(node,c):ifnodeincolor:returncolor[node]==ccolor[node]=creturnall(dfs(nei,notc)forneiingraph[node])fornodeinrange(len(graph)):ifnodenotincolor:ifnotdfs(node,True):returnFalsereturnTrue解析:使用深度优先搜索(DFS)进行二分图判断。使用color字典记录节点颜色,初始设为True或False。若存在相邻节点颜色相同,则不是二分图。时间复杂度为O(n+e),空间复杂度为O(n)。三、系统设计题(共3题,每题20分,总分60分)1.题目:设计一个短链接(TinyURL)系统。输入一个长URL,生成一个短URL,并支持通过短URL解析回长URL。答案:pythonclassTinyURL:def__init__(self):self.base_url="/"self.url_map={}self.count=0def_encode(self,num:int)->str:chars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"res=[]whilenum:res.append(chars[num%62])num//=62return''.join(res[::-1])definsert(self,long_url:str)->str:self.count+=1short_code=self._encode(self.count)self.url_map[short_code]=long_urlreturnself.base_url+short_codedefget(self,short_url:str)->str:short_code=short_url.split('/')[-1]returnself.url_map.get(short_code,"")解析:使用62进制编码生成短链接,避免冲突。哈希表存储短链接与长链接的映射关系。时间复杂度为O(1),空间复杂度为O(n)。2.题目:设计一个微博(Twitter)系统,支持用户发布、关注、点赞和获取时间线。要求支持实时更新。答案:pythonclassTwitter:def__init__(self):self.timestamp=0self.user_follows=defaultdict(set)self.user_tweets=defaultdict(list)self.user_likes=defaultdict(set)defpost(self,user_id:int,tweet:str)->None:self.timestamp+=1self.user_tweets[user_id].append((self.timestamp,tweet))defget_timeline(self,user_id:int)->List[str]:tweets=self.user_tweets[user_id]return[tweetfor_,tweetinsorted(tweets,reverse=True)]deffollow(self,follower_id:int,followee_id:int)->None:self.user_follows[follower_id].add(followee_id)deflike(self,user_id:int,tweet_id:int)->None:self.user_likes[tweet_id].add(user_id)解析:使用哈希表存储用户关系和发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铁路行车规章课件-掌握信号显示相关规定
- 2026年机械员之机械员专业管理实务练习题包完整版附答案详解
- 2026年全国中心血站上岗证测试卷含完整答案详解(夺冠)
- 2026年幼儿园乘电梯
- 2026年幼儿园放学排队的
- 2026年幼儿园我会坚持
- 2025福建福州城市泊车管理有限公司招聘2人笔试参考题库附带答案详解
- 2025福建泉州文旅集团第二批招聘17人笔试参考题库附带答案详解
- 2025神木市选聘高校毕业生到非公企业工作(75人)笔试参考题库附带答案详解
- 2025湖南省君山农垦集团有限公司劳务派遣人员招聘4人笔试参考题库附带答案详解
- 国家事业单位招聘2025中国宋庆龄青少年科技文化交流中心招聘人员笔试历年参考题库典型考点附带答案详解
- 安徽省合肥市2026届高三下学期第二次教学质量检测政治卷及答案
- 山东省潍坊市2026届高三下学期4月模拟考试(二模)政治试卷(含答案)
- (2026年)《中华人民共和国药品管理法(2019版)》学习与解读课件
- 2026年4月河北保定市中考一模英语试卷
- 2026年度哈尔滨“丁香人才周”(春季)乡镇卫生院招聘医学毕业生112人农业笔试模拟试题及答案解析
- 数学 2025-2026学年北师大版数学八年级下册期中仿真模拟卷(三)(第1-3章)
- 2026安徽省交控建设管理有限公司校园招聘5人笔试参考题库附带答案详解
- 综合管理岗笔试题及答案
- 器械生产清场管理制度
- 2025中国未来交通产业发展全景图及趋势研究报告
评论
0/150
提交评论