想进字节、阿里等公司,要刷多少题才够?

2020-12-08 15:21:50 +08:00
 hakunamatata11

公司不同,面试难度不同

不同公司,考察的知识点范围不同,相应的面试难度也不同。

第一梯队(超级独角兽或工作强度较小的大厂)

国内:字节跳动、美团、拼多多等(天价包频出,工作强度较大)

国外:Snowflake 、Google 、Facebook(活多钱多)

这类公司的 bar 较高,所以必须要刷难题。算法考察范围很广,所以要以刷中等题( 70%)为主,辅以部分难题( 30%)。特别喜欢考察动态规划( DP )红黑树( Red-black Tree )线段树( Segment Tree )

这些题目,可以在LintCode上根据算法和数据结构的 tag 来刷,提高效率。

第二梯队(其他大厂)

国内:阿里、腾讯、百度、京东等(工作强度大,但薪资也高)

国外:Amazon 、Microsoft 、Apple 等(薪资中上游)

这类公司刷中等题为主就够了,重点考察快速排序( Quick Sort )双指针( Two Pointers )深度优先搜索( DFS )

第三梯队(其他中小厂)

国内:海康威视、搜狗、爱奇艺

国外:Roblox 、Uber 、Snapchat

这类公司刷中等题就够了,算法面试考察范围很窄,把Binary Tree, LinkedList, String, Array 这些基本数据结构相关的题掌握即可。

引用一下我在讲座《 FB 面试官揭秘算法面试速成技巧 - 怎样做到 Bug Free 和刷 100 题等于别人刷 300 题》中分享的面试算法知识点及考察情况

这是一门真正以算法面试为导向的课程,自 2014 年起已开班 6 年,除了带大家巩固算法面试中的 57 个核心考点,关于算法面试中常考知识点的具体考察情况、优秀的Coding Quality,面试中如何与面试官沟通如何套用算法模板我都会提及,感兴趣的朋友可以去**免费体验**一下~

岗位不同,算法面试难度不同

此外,你心仪的岗位不同,算法面试难度也不同,相应要刷的题目数量也不同。

总的来说,越后端的岗位越难,越前端的越简单。

这里分享我整理的面试高频算法题

二分法:

硬币摆放] 查找最大因子 地图跳跃 山形数组的顶峰坐标 拆分子数组

DFS:

绘制填充 停在原地的方案数 喧闹和富有 旅行计划 连接词

动态规划:

最长上升连续子序列 推多米诺 单词拆分 供应场 书籍复印

哈希表:

最长回文串 找到映射序列 重排字符串 k 距分隔 森林中的兔子 基础计算器

递归:

二叉树的后序遍历 列表扁平化 用递归打印数字 字符串解码 最大子串

此外,刷题不是刷过了就可以,还要注重代码质量。**拥有好的代码质量,会让面试官在心里为你默默加分。**如果你的代码质量很差,面试官会在心里为你默默扣分。而最终是否导致 Hire / No Hire,就是一个量变引起质变的问题。

拥有好的代码质量,还能够让你的代码少出 BUG 。你以为只需要细心就可以不出 BUG,但是通过子函数化、避免全局变量等手段可以让你出 BUG 的概率大大降低。

好的代码质量包括:

①代码到底写完没有 ②代码风格好不好(可读性、变量名 /函数名命名、空格与空行的正确使用) ③异常检测 ④Bug Free

很多人会问:刷题刷到什么程度去面试才够?我认为,要根据你的意向岗位,意向公司的算法难度而定。对于马上要参与面试的同学,可以把下表标红的知识点重点刷一遍,突击上岸。

面试,不止考算法

回到这个问题,就算你真的把LintCode刷通了,你也未必能找到工作。

因为技术岗除了面算法题,还有可能会考:

总之,程序员的面试不是三言两语就能讲清楚的。只有通过不断学习和巩固,把面试的方方面面都掌握,才有机会拿到心仪的 offer 。

加油!

856 次点击
所在节点    推广
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/733344

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX