2026年互联网大厂算法题精集_第1页
2026年互联网大厂算法题精集_第2页
2026年互联网大厂算法题精集_第3页
2026年互联网大厂算法题精集_第4页
2026年互联网大厂算法题精集_第5页
已阅读5页,还剩9页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

2026年互联网大厂算法题精集1.动态规划(3题,每题20分)题目1:最长递增子序列(LIS)场景:某电商平台需要根据用户购买行为预测产品热度趋势,要求找出用户购买序列中最长的连续增长趋势,帮助优化推荐算法。题目描述:给定一个整数数组`nums`,返回数组中的最长递增子序列的长度。子序列不要求连续,但必须是递增的。示例:输入:`nums=[10,9,2,5,3,7,101,18]`输出:`4`(子序列`[2,5,7,101]`或`[2,3,7,101]`)题目2:不同路径III场景:在自动驾驶路径规划中,需要避开障碍物,计算从起点到终点的最短路径数量。题目描述:在一个`mxn`的网格中,有一些障碍物(值为`-1`),从左上角`(0,0)`到右下角`(m-1,n-1)`的路径中,每次只能向下或向右移动,求路径总数。示例:输入:`grid=[[0,0,0],[0,-1,-1],[0,0,0]]`输出:`2`(两条路径:`(0,0)→(0,1)→(1,1)→(2,1)→(2,0)`或`(0,0)→(1,0)→(1,1)→(2,1)→(2,0)`)题目3:编辑距离场景:在智能客服系统中,需要根据用户输入的错别字自动纠错,计算最少操作次数(插入、删除、替换)。题目描述:给定两个字符串`word1`和`word2`,返回将`word1`转换为`word2`的最少操作数。示例:输入:`word1="horse"`,`word2="ros"`输出:`3`(操作:`"horse"`→`"hore"`(替换`'e'→'o'`)→`"hros"`(插入`'r'`)→`"ros"`(删除`'h'`))2.树与图(4题,每题25分)题目1:二叉树的最大深度场景:在社交媒体中,用户关系构成树状结构,需要计算用户与最高级管理者的层级差。题目描述:给定二叉树的根节点`root`,返回其最大深度(从根到最远叶节点的最长路径)。示例:输入:3/\920/\157输出:`3`题目2:无向图的连通分量场景:在物流网络中,需要检测区域是否完全连通,以优化配送路线。题目描述:给定一个无向图(用邻接矩阵表示),返回连通分量的数量。示例:输入:`graph=[[1,1,0],[1,1,0],[0,0,1]]`输出:`2`(两个连通分量:`{0,1}`和`{2}`)题目3:二叉搜索树的最近公共祖先场景:在电商平台的商品分类树中,快速查找两个类别的最近公共上级。题目描述:给定二叉搜索树的根节点`root`和两个节点`p`、`q`,返回它们的最近公共祖先。示例:输入:6/\28/\/\0479/\35`p=2`,`q=8`输出:`6`题目4:图的拓扑排序场景:在依赖任务调度系统中,需要按依赖顺序执行任务。题目描述:给定一个有向无环图(用邻接列表表示),返回其拓扑排序。示例:输入:`graph=[[1,2],[3],[3],[]]`输出:`[0,1,2,3]`(或`[0,2,1,3]`等)3.堆与优先队列(2题,每题30分)题目1:K个最近点场景:在地图服务中,根据用户位置推荐附近的K个兴趣点。题目描述:给定一个数组`points`和整数`K`,返回距离原点`(0,0)`最近的`K`个点。示例:输入:`points=[[1,3],[-2,2]]`,`K=1`输出:`[[-2,2]]`题目2:最小堆实现中位数场景:在数据流处理中,需要实时维护数据的中位数。题目描述:设计一个数据结构,支持`addNum`添加数字和`findMedian`查询中位数。要求使用最小堆和最大堆结合实现。示例:操作序列:`["MedianFinder","addNum","addNum","findMedian"]`输入:`[[],[1],[2],[]]`输出:`[1.5]`4.字符串处理(3题,每题25分)题目1:最长回文子串场景:在文本编辑器中,需要检测用户输入的回文片段。题目描述:给定字符串`s`,返回最长的回文子串。示例:输入:`s="babad"`输出:`"bab"`(或`"aba"`)题目2:子字符串的所有变体排列场景:在搜索引擎中,需要匹配用户输入的多种拼写变体(如大小写、空格差异)。题目描述:给定字符串`s`和`part`,返回`s`中所有`part`的排列(不考虑顺序且可重叠)。示例:输入:`s="abcabc",part="abc"`输出:`[0,3,6]`(表示子串`"abc"`出现在位置`0,3,6`)题目3:有效的括号场景:在代码格式化工具中,检测用户输入的括号是否匹配。题目描述:给定一个字符串`s`,判断是否有效(括号必须一一对应)。示例:输入:`s="{[]()}"`输出:`true`5.数组与矩阵(3题,每题25分)题目1:旋转图像场景:在游戏开发中,需要旋转玩家视角下的地图。题目描述:给定一个`nxn`的二维矩阵,原地旋转90度。示例:输入:[[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]题目2:搜索二维矩阵场景:在电商搜索中,快速定位商品在二维分类表中的位置。题目描述:给定一个`mxn`的排序矩阵和目标`target`,返回是否存在`target`。示例:输入:[[1,3,5,7],[10,11,16,20],[23,30,34,60]]`target=3`输出:`true`题目3:和为K的子数组场景:在金融数据分析中,统计连续交易日的累计收益是否达到某个阈值。题目描述:给定整数数组`nums`和`k`,返回连续子数组的和等于`k`的个数。示例:输入:`nums=[1,1,1],k=2`输出:`2`(子数组`[1,1]`出现两次)答案与解析动态规划题目1:最长递增子序列(LIS)答案:`4`解析:使用动态规划,定义`dp[i]`为以`nums[i]`结尾的最长递增子序列长度。遍历时,对于每个`nums[i]`,检查所有`j<i`的`nums[j]<nums[i]`,更新`dp[i]=max(dp[j]+1)`。最终`max(dp)`即为答案。题目2:不同路径III答案:`2`解析:使用深度优先搜索(DFS)+剪枝,记录障碍物位置,从`(0,0)`出发,每次向下或向右移动,若到达`(m-1,n-1)`则计数。注意避免重复计算和越界。题目3:编辑距离答案:`3`解析:构建二维`dp`表,`dp[i][j]`表示`word1[:i]`转换为`word2[:j]`的最少操作数。递推公式:-若`word1[i-1]==word2[j-1]`,则`dp[i][j]=dp[i-1][j-1]`;-否则`dp[i][j]=min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1])+1`。树与图题目1:二叉树的最大深度答案:`3`解析:递归计算左右子树的最大深度,取较大值加1。题目2:无向图的连通分量答案:`2`解析:使用并查集或DFS遍历,统计连通分量的数量。题目3:二叉搜索树的最近公共祖先答案:`6`解析:在BST中,公共祖先一定是满足`p.val<=root.val<=q.val`的节点。从根节点遍历,若`p`和`q`都小于当前节点,则向左;否则向右。题目4:图的拓扑排序答案:`[0,1,2,3]`解析:Kahn算法:计算每个节点的入度,将入度为0的节点加入队列,依次处理并减去其邻接节点的入度。堆与优先队列题目1:K个最近点答案:`[[-2,2]]`解析:使用最大堆维护K个最小点,遍历数组时,若当前点小于堆顶则替换。题目2:最小堆实现中位数答案:`1.5`解析:使用最大堆和最小堆,最大堆存储较小的一半,最小堆存储较大的一半,中位数由堆顶决定。字符串处理题目1:最长回文子串答案:`"bab"`解析:中心扩展法:遍历每个字符作为中心,向左右扩展判断回文长度。题目2:子字符串的所有变体排列答案:`[0,3,6]`解析:滑动窗口匹配`part`,记录起始位置。题目3:有效的括号答案:`true`解析:使用栈,遍历字符,左括号入栈,右括号匹配栈顶。最终栈为空则有效。数组与矩阵题目1:旋转图像答案:[[7,4,1],[

温馨提示

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

评论

0/150

提交评论