ACM金牌选手,后任职Facebook高级架构师,拿过国内几乎一二线互联网公司的offer,以及10+北美国内顶尖IT公司offer,面试超过200人。
从当年的准备面试到后来的面试别人,一个最大的感触就是“面试最难二叉树”的年代已经过去了。
最主要是因为很多公司面临业务和技术的发展,必须在前来面试的上千候选人中挑选出匹配的人。面试的题目不是为了考察你会不会什么,而是为了考察你有没有解决问题的能力。
根据我以往的经验来看,每个公司都会根据自己的业务需求创建一个专属的面试题库。我也爆肝各大面经和企业的面试题库,为同学整理出了国内各大厂对算法知识点的不同考察频率,以及不同公司的面试中的高频题。
本文中的所有题目以及题解均上传在 Github 的仓库中啦,并且附上了我整理的一份“高浓度精华”算法模板,遇到不会的题目直接套用模板基本就可以解决, 戳我直达Github !
拿下offer并不是比你懂得多,而是在刷题的过程中学会了解决问题的办法。想要快速培养自己这方面的能力,针对性地刷题是见效最快的,也是必须要做的。
国内大厂

1. 阿里巴巴
① 考察知识点
重点考察动态规划、其次是字符串处理、二分法、数组和分治法。注重在问题回答的扩展程度,以及实践经验。当然,对自己做过的项目一定要深入,包括使用使用到的技术原理、为什么要使用这些技术。
② 必刷题目
312.牛牌 876.连接字符串 877.同和分割数组 1089.有效的括号字符串 1358.路径和 1168.数组评分 183.木材加工 437.书籍复印 1219.地图跳跃 194.寻找单词 1817.分享巧克力字节跳动
字节跳动考察的知识点并不会很多,就四个知识点:字符串、map、rand、perfix sum。但是会深挖一个知识点,难度比较大。
在做题目的时候注重候选人的四个能力:算法能力、重原理(基础)、实践能力、未来的潜力。
244.删除字符 305.矩阵中的最长递增路径 332.恢复数组 964.食物集合 1314.组合新数字 120.单词接龙 415.有效回文串 2.尾部的零 116.跳跃游戏 109.数字三角形腾讯
算法题分布主要在动态规划、数学以及贪心。腾讯的算法面试不会有很多花样,都比较常规,所以只要踏踏实实刷题把算法的原理以及应用场景掌握就行了。
在面试中的加分项是你的项目以及比赛经历,面试官会根据项目中的方法以及项目优化这些方面进行拓展提问。
267.最短休息日 282.解压字符串 339.中位数 1180.移除箱子 871.最小分解 344.歌曲时间 920.会议室 602.俄罗斯套娃信封 304.最大乘积 187.加油站 45.最大子数组差美团
动态规划,双指针,单调栈,栈,模拟法,在面试前最好去弄懂如何处理高并发这类事情,以及数据库的分库分表,底层实现,索引优化。
273.考试策略 382.字符串划分 346.区间极值异或 1141.月份天数 1145.关联查询 1905.字符删除刷题的数量不是做题的最终目的,最重要的是从刷题中学会解决问题的方式,希望大家在自己的总结中不断提升自己的算法能力,最终能拿到心仪的offer!