2026年互联网公司校招技术笔试仿真题集_第1页
2026年互联网公司校招技术笔试仿真题集_第2页
2026年互联网公司校招技术笔试仿真题集_第3页
2026年互联网公司校招技术笔试仿真题集_第4页
2026年互联网公司校招技术笔试仿真题集_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

2026年互联网公司校招技术笔试仿真题集一、编程基础(3题,每题10分,共30分)题目1:请用Python语言实现一个函数,输入一个正整数`n`,返回一个列表,其中包含从1到`n`的所有奇数。如果输入不是正整数,则抛出`ValueError`异常。示例:-输入:`5`-输出:`[1,3,5]`-输入:`0`(应抛出异常)题目2:给定一个字符串`s`,请编写一个函数,返回`s`中所有唯一字符的列表(按原顺序排列)。如果`s`为空或全为重复字符,则返回空列表。示例:-输入:`"abaccde"`-输出:`['b','c','d','e']`题目3:请用Java实现一个`TreeNode`类,包含整型值`val`、左子节点`left`和右子节点`right`。然后编写一个方法`maxDepth`,返回该二叉树的最大深度。示例:TreeNoderoot=newTreeNode(3);root.left=newTreeNode(9);root.right=newTreeNode(20);root.right.left=newTreeNode(15);root.right.right=newTreeNode(7);-输出:`3`二、数据结构与算法(5题,每题10分,共50分)题目4:请解释什么是“动态数组”?它与静态数组的主要区别是什么?并简述动态数组在内存管理上的优缺点。题目5:给定一个无重复元素的整数数组`nums`和一个目标值`target`,请编写一个函数,返回`target`在`nums`中的索引(如果不存在则返回`-1`)。要求时间复杂度为`O(logn)`。示例:-输入:`nums=[4,5,6,8,9],target=6`-输出:`2`题目6:请设计一个LRU(LeastRecentlyUsed)缓存机制,支持`get`和`put`操作。要求`get`操作返回键对应的值,若不存在则返回`-1`;`put`操作将键值对插入缓存,如果缓存已满则删除最久未使用的元素。题目7:请解释快速排序的原理,并简述其时间复杂度和稳定性。题目8:给定一个链表,请编写一个函数,反转链表并返回新头节点。示例:-输入:`1->2->3->4->5`-输出:`5->4->3->2->1`题目9:请实现一个二叉搜索树(BST)的`insert`方法,将一个新值插入树中并保持BST性质。三、系统设计(2题,每题15分,共30分)题目10:假设你要设计一个支持百万级用户的短链接服务(如`t.co`),请简述主要技术方案,包括:1.短链接生成算法;2.高并发访问的解决方案;3.数据存储与分布式缓存设计。题目11:请设计一个简单的消息推送系统(如微信通知),需要支持:1.用户订阅与退订功能;2.消息分批推送(例如每秒推送不超过100条);3.错误处理机制(如重试或限流)。四、数据库与SQL(3题,每题10分,共30分)题目12:请写出一条SQL查询,统计每个部门的平均薪资,只显示平均薪资超过5000的部门。题目13:解释数据库事务的ACID特性,并说明为何需要事务。题目14:请用SQL实现一个临时表`temp_users`,包含`id`(主键)、`name`和`age`,并将原表`users`中年龄大于30的用户插入`temp_users`。五、网络与分布式(2题,每题15分,共30分)题目15:请解释TCP的三次握手过程,并简述为何不能省略任何一次。题目16:假设你要设计一个高可用的分布式存储系统(如HDFS),请说明:1.主从架构或集群架构的选择;2.数据冗余与容错机制;3.如何解决网络分区问题。答案与解析编程基础题目1(Python):pythondefodd_numbers(n):ifnotisinstance(n,int)orn<=0:raiseValueError("Inputmustbeapositiveinteger")return[iforiinrange(1,n+1)ifi%2!=0]解析:-使用列表推导式生成奇数列表;-判断输入是否为正整数,否则抛异常。题目2(Python):pythondefunique_chars(s):seen=set()result=[]forcharins:ifcharnotinseen:seen.add(char)result.append(char)returnresult解析:-用`set`记录已见字符,避免重复;-按顺序添加唯一字符。题目3(Java):javaclassTreeNode{intval;TreeNodeleft;TreeNoderight;TreeNode(intx){val=x;}}publicintmaxDepth(TreeNoderoot){if(root==null)return0;return1+Math.max(maxDepth(root.left),maxDepth(root.right));}解析:-递归计算左右子树的最大深度,加1为当前节点。数据结构与算法题目4:答案:-动态数组是大小可变的数组,通过内存分配和复制实现扩容;-与静态数组区别:静态数组大小固定,动态数组可自动扩容;-优点:灵活管理内存;缺点:扩容时可能触发复制,有性能开销。题目5(二分查找):pythondefbinary_search(nums,target):left,right=0,len(nums)-1whileleft<=right:mid=(left+right)//2ifnums[mid]==target:returnmidelifnums[mid]<target:left=mid+1else:right=mid-1return-1解析:-适用于有序数组,每次将搜索范围减半。题目6(LRU缓存):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:self.cache.pop(self.order.pop(0))self.cache[key]=valueself.order.append(key)解析:-使用字典存储键值对,列表记录访问顺序;-`get`时移动元素到末尾,`put`时先移除最久未使用元素。题目7(快速排序):答案:-原理:选择基准值,将数组分成小于和大于基准的两部分,递归排序;-时间复杂度:O(nlogn)(平均),O(n²)(最差);-不稳定排序。题目8(反转链表):pythonclassListNode:def__init__(self,val=0,next=None):self.val=valself.next=nextdefreverseList(head):prev,curr=None,headwhilecurr:next_node=curr.nextcurr.next=prevprev=currcurr=next_nodereturnprev解析:-迭代反转每个节点的`next`指针。题目9(BST插入):pythonclassBSTNode:def__init__(self,val):self.val=valself.left=Noneself.right=Nonedefinsert(root,val):ifrootisNone:returnBSTNode(val)ifval<root.val:root.left=insert(root.left,val)else:root.right=insert(root.right,val)returnroot解析:-递归比较并插入到左子树或右子树。系统设计题目10(短链接服务):答案:1.短链接生成:-使用哈希算法(如MD5+Base62编码)将长URL映射为短码;-增加随机前缀避免冲突。2.高并发方案:-CDN缓存热点链接;-负载均衡分发请求;-Redis缓存短码到长码映射。3.数据存储:-主库存储短码-长码映射;-分片或分表应对高并发写入。题目11(消息推送系统):答案:1.订阅/退订:-用户表存储`user_id`和`topic_id`;-使用Redis订阅消息队列。2.分批推送:-限流器(如令牌桶算法);-消息队列分批发送。3.错误处理:-超时重试;-超过阈值则限流或记录异常。数据库与SQL题目12(SQL统计):sqlSELECTdepartment,AVG(salary)ASavg_salaryFROMemployeesGROUPBYdepartmentHAVINGAVG(salary)>5000;题目13(ACID特性):答案:-原子性(Atomicity):事务要么全部完成,要么全部回滚;-一致性(Consistency):事务执行后数据库状态合法;-隔离性(Isolation):并发事务互不干扰;-持久性(Durability):事务提交后结果永久保存。原因:保证数据可靠性和完整性。题目14(SQL临时表):sqlCREATETEMPORARYTABLEtemp_usersASSELECTid,name,ageFROMusersWHEREage>30;网络与分布式题目15(TCP三次握手):答案:-第一次:客户端发

温馨提示

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

评论

0/150

提交评论