2026年互联网大厂笔试题及答案_第1页
2026年互联网大厂笔试题及答案_第2页
2026年互联网大厂笔试题及答案_第3页
2026年互联网大厂笔试题及答案_第4页
2026年互联网大厂笔试题及答案_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

2026年互联网大厂笔试题及答案一、编程题(共3题,每题20分,总分60分)题目1(Python编程题:数据结构应用)背景:某电商平台需要对用户订单数据进行处理,订单信息包含用户ID、商品ID、购买时间(格式为“YYYY-MM-DDHH:MM:SS”)、商品价格。请编写Python代码实现以下功能:1.从输入列表中筛选出2026年1月1日之后的所有订单;2.计算筛选后的订单总金额;3.按用户ID分组,输出每个用户的订单数量及平均订单金额(保留两位小数)。示例输入:pythonorders=[{"user_id":"U001","product_id":"P001","time":"2025-12-3123:59:59","price":100},{"user_id":"U002","product_id":"P002","time":"2026-01-0210:30:00","price":200},{"user_id":"U001","product_id":"P003","time":"2026-01-0515:20:00","price":150},{"user_id":"U003","product_id":"P004","time":"2026-01-0108:45:00","price":300}]示例输出:python筛选后的订单总金额:450用户订单统计:U001:订单数量2,平均金额125.00U002:订单数量1,平均金额200.00答案:pythonfromdatetimeimportdatetimedefprocess_orders(orders):1.筛选2026年1月1日之后的订单filtered_orders=[orderfororderinordersiforder["time"]>="2026-01-0100:00:00"]total_amount=sum(order["price"]fororderinfiltered_orders)print(f"筛选后的订单总金额:{total_amount}")2.按用户ID分组统计订单数量和平均金额user_stats={}fororderinfiltered_orders:user_id=order["user_id"]user_stats.setdefault(user_id,{"count":0,"total":0})user_stats[user_id]["count"]+=1user_stats[user_id]["total"]+=order["price"]print("用户订单统计:")foruser_id,statsinuser_stats.items():avg_price=stats["total"]/stats["count"]print(f"{user_id}:订单数量{stats['count']},平均金额{avg_price:.2f}")示例调用process_orders(orders)解析:1.使用列表推导式筛选2026年1月1日之后的订单;2.计算筛选后订单的总金额;3.使用字典统计每个用户的订单数量和总金额,最后计算平均金额并格式化输出。题目2(Java编程题:算法设计)背景:某社交平台需要优化好友推荐算法,给定两个用户集合A和B,要求找出A和B中共同出现的用户数量。请编写Java代码实现该功能,假设输入为字符串数组,每个字符串代表一个用户ID。示例输入:javaString[]A={"U001","U002","U003","U004"};String[]B={"U003","U004","U005","U006"};示例输出:java共同用户数量:2(U003,U004)答案:javaimportjava.util.HashSet;importjava.util.Set;publicclassCommonFriends{publicstaticintcountCommonFriends(String[]A,String[]B){Set<String>setA=newHashSet<>();for(Stringuser:A){setA.add(user);}intcount=0;for(Stringuser:B){if(setA.contains(user)){count++;}}returncount;}publicstaticvoidmain(String[]args){String[]A={"U001","U002","U003","U004"};String[]B={"U003","U004","U005","U006"};intresult=countCommonFriends(A,B);System.out.println("共同用户数量:"+result+"(U003,U004)");}}解析:1.将集合A的用户ID存入HashSet,利用其去重特性;2.遍历集合B,统计与A中重合的用户数量;3.最终返回重合数量,并输出具体用户ID。题目3(JavaScript编程题:异步编程)背景:某电商平台需要获取用户信息并更新订单状态,假设有两个API:-`getUserInfo(userId)`:返回用户信息的Promise对象;-`updateOrderStatus(orderId,status)`:更新订单状态的Promise对象。请编写JavaScript代码,实现以下功能:1.当用户ID为“U001”时,获取用户信息并更新订单ID为“O001”的订单状态为“已完成”;2.若用户不存在,则输出“用户不存在”;3.所有操作完成后,输出“操作完成”。示例输出:javascript用户信息:{userId:"U001",name:"张三"}订单更新成功操作完成答案:javascriptasyncfunctionprocessUserOrder(userId){try{//获取用户信息constuserInfo=awaitgetUserInfo(userId);if(!userInfo){console.log("用户不存在");return;}console.log("用户信息:",userInfo);//更新订单状态awaitupdateOrderStatus("O001","已完成");console.log("订单更新成功");console.log("操作完成");}catch(error){console.error("操作失败:",error);}}//示例调用processUserOrder("U001");解析:1.使用`async/await`处理异步操作;2.若`getUserInfo`返回null或undefined,则输出“用户不存在”;3.否则,输出用户信息并更新订单状态,最后输出“操作完成”。二、算法题(共2题,每题15分,总分30分)题目4(数学计算题:动态规划)背景:某外卖平台需要计算最短配送路径,给定一个N×N的矩阵,每个元素表示该位置的距离,起点为左上角(0,0),终点为右下角(N-1,N-1),只能向右或向下移动。请编写代码计算最短路径的总距离。示例输入:pythonmatrix=[[1,3,1],[1,5,1],[4,2,1]]示例输出:python最短路径距离:7(路径:0→0→1→1→2→2→2)答案:pythondefminPathDistance(matrix):N=len(matrix)dp=[[0]Nfor_inrange(N)]dp[0][0]=matrix[0][0]初始化第一行和第一列foriinrange(1,N):dp[0][i]=dp[0][i-1]+matrix[0][i]dp[i][0]=dp[i-1][0]+matrix[i][0]动态规划计算最短路径foriinrange(1,N):forjinrange(1,N):dp[i][j]=min(dp[i-1][j],dp[i][j-1])+matrix[i][j]returndp[N-1][N-1]示例调用matrix=[[1,3,1],[1,5,1],[4,2,1]]result=minPathDistance(matrix)print(f"最短路径距离:{result}(路径:0→0→1→1→2→2→2)")解析:1.使用动态规划填充dp矩阵,其中`dp[i][j]`表示从起点到(i,j)的最短距离;2.初始化第一行和第一列的累积距离;3.递推公式为`dp[i][j]=min(dp[i-1][j],dp[i][j-1])+matrix[i][j]`;4.最终`dp[N-1][N-1]`为最短路径距离。题目5(逻辑题:二叉树遍历)背景:某搜索引擎需要优化关键词检索,给定一个二叉搜索树(BST),请编写代码判断其是否为平衡二叉树(任意节点的左右子树高度差不超过1)。示例输入:pythonclassTreeNode:def__init__(self,val=0,left=None,right=None):self.val=valself.left=leftself.right=right构建BSTroot=TreeNode(2)root.left=TreeNode(1)root.right=TreeNode(3)示例输出:python是平衡二叉树答案:pythonclassTreeNode:def__init__(self,val=0,left=None,right=None):self.val=valself.left=leftself.right=rightdefisBalanced(root):defcheckHeight(node):ifnotnode:return0,Trueleft_height,left_balanced=checkHeight(node.left)ifnotleft_balanced:return0,Falseright_height,right_balanced=checkHeight(node.right)ifnotright_balanced:return0,Falsereturnmax(left_height,right_height)+1,abs(left_height-right_height)<=1_,balanced=checkHeight(root)returnbalanced示例调用root=TreeNode(2)root.left=TreeNode(1)root.right=TreeNode(3)print("是平衡二叉树"ifisBalanced(root)else"不是平衡二叉树")解析:1.使用递归计算每个节点的左右子树高度;2.若任意节点的左右子树高度差超过1,则返回False;3.否则,整个树为平衡二叉树。三、综合题(共2题,每题10分,总分20分)题目6(行业理解题:大数据处理)背景:某电商平台需要分析用户行为数据,假设每天有数百万条用户点击日志,包含用户ID、商品ID、点击时间。请简述你会如何设计系统架构来高效处理这些数据?要求:1.说明数据存储方案;2.描述数据处理流程;3.提出至少一个优化方案。答案:1.数据存储方案:-使用分布式数据库(如HBase)存储原始日志,支持高并发读写;-使用Elasticsearch索引用户行为数据,便于快速查询。2.数据处理流程:-使用ApacheKafka收集实时日志数据;-使用ApacheFlink或Spark进行实时数据清洗和聚合;-将处理后的数据写入HBase或ClickHouse,用于离线分析。3.优化方案:-引入数据分区(按时间或用户ID),提高查询效率;-使用缓存(如Redis)存储热点数据,减少数据库压力。题目7(地域理解题:跨境电商)背景:某电商公司计划拓展东南亚市场,假设需要为泰国用户提供本地化的商品推荐服务,请说明你会如何设计推荐系统?要求:1.分析泰国用户的消费习惯;2.提出推荐算法方案;3.说明数据收

温馨提示

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

评论

0/150

提交评论