前两天在校招求职内推群里给大家做了一个调查问卷
有的同学问
- 力扣到底到达什么程度,有点慌?
- 暑期实习面试前端对算法的要求会很高吗?
看到有同学对算法题仍然心存芥蒂,不知道该刷到什么程度
在已经内推的同学中,更有才刷了几十道就投递简历的同学,我只能说“初生牛犊不怕虎”啊
今天正题主要给大家分享一下,应该如何高效刷算法题,到什么程度就可以去面试了呢?
主要给大家分以下三个部分进行介绍:
1. 不同的岗位对算法题的要求是怎样的?
2. 面试官通过算法题考查候选人哪些能力?
3. 时间紧迫,如何高效刷题?
不同岗位对算法题的要求是怎样的
不同研发类的岗位对算法题的侧重会有些不同
算法类的岗位对算法的要求最高,需要同时具备手撕leetcode和岗位相关的算法题。对于leetcode的难度最好刷到hard,常见的链表、树、BFS\DFS、dp等问题需要多刷刷
除了leetcode之外,还需要掌握CV、NLP、推荐相关的常见手撕算法题
- 后端岗位对算法的要求次之,常规面试难度在leetcode middle难度(不排除意外情况,自求多福),leetcode刷题数量在200-300即可(middle占比80%-90%)
前端岗位对算法的要求没有特别高,但是常见的链表、树的题基本必问,要能熟练掌握,灵活运用。leetcode刷题数量在200题左右(middle占比70%-80%)
除了leetcode相关的算法题之外,前端面试官还会额外考察候选人在前端领域的代码能力和支持储备,常见的手写题比如手写防抖、节流、实现深拷贝、promise等前端领域相关的题目
给前端小伙伴推荐这本《你不知道的JavaScript(上卷)》,这本是带我前端入门的书,很多面试常考题会在这里找到答案,不过全套3本现在京东活动只要120+,也还划算
算法题主要考察哪些能力?
这个问题非常 非常 非常的重要!!!
理解的这个问题才能更加高效的刷题!!
刷题的过程中应该注重培养自己哪些思考!!
- 考察解决问题的能力 。 在解题过程中是如何思考的,思路是否清晰
- 考察沟通能力 。 是否能够了解清楚面试官的用意,在遇到困难的时候是否可以和面试官沟通寻求解决思路
- 考察实践能力 。 研发岗位重点考察实践能力,只会背题是不行的,写算法题是考察代码实践能力的一种简单的方式
- 考察编码习惯 。 比如在写代码前是否考虑边界case,编码后是否能够通过一些case测试验证,变量命名等
- 考察灵活运用的能力 。 光会背题不行,总结也很关键,要能举一反三,比如面试官将日常工作中的题目抽象成树的题,你是否能有自信写出来(我曾经就真实遇到过,写了一页纸让我印象深刻)
了解了这些考察的方面,带着这些目标去刷题,让你的刷题效率事半功倍!!
都给我好好读!下面是一个编码过程中的沟通范例,可以照猫画虎学一下
前两天有个内推的同学跟我说,面试官考察了一道树的题,卡在了输入输出上,不知道应该怎么输入一棵树 /手动狗头,这说明刷题的时候只顾背题了,没有锻炼自己的实践能力和不够灵活.这位同学回去请认真刷题
时间紧迫,应该如何高效刷题?
我在参加校招的时候没有刷太多的题目,但是却帮我拿到了BAT字节快手等公司的offer,其中一个原因是我掌握了刷题的技巧,我了解面试过程中写题的时候应该如何同面试官交流(第2部分),并待入到我的刷题策略中
暑期实习刷题量在170道,秋招又刷了60道,加起来200多道
作为一个不喜欢刷题的人,每天刷10道题都要刷吐了,每天硬着头皮看题解,而且春招暑期实习来的像暴风雨一样突然,慢热的小伙伴反映过味儿来都要结束了,身边的同学都去实习了
火急火燎的刷题,屡屡遭受面试官的毒打、被按在地上摩擦
这里给大家推荐一些实用的方法,试用所有研发类的岗位,帮助你快速的刷题、这些都是我亲自试验过的,用这个方法可以帮助你快速的进入一个自信勇敢的面试状态,快速提升面试能力!
工具:工欲善其事,必先利其器
刷题平台:《剑指offer》、leetcode、CodeTop 高频面试题网站:https://codetop.cc/home
先刷剑指offer这个是高频考题,在刷leetcode hot100可以结合CodeTop的频率选择
题解:公众号labuladong、负雪明烛
- labuladong总结的算法小册很不错,现在好像要付费了,可以帮助你举一反三,避免生硬的去背题,这本小册子帮助我很多,节省了很多的时间
- 负雪明烛是北邮师兄,1000篇算法题解的作者,leetcode上面有很多他的题解
配置:IDE编码环境(vscode\idea等)、、
最好自己在本地ide环境运行,练习输入输出
笔试和面试的时候会要求输入输出。
题写出来了,一个输出没有,岂不gg
我还会在无自动提醒的编辑器(sublime tex)里面练习白纸手撕的感觉\
下面说一下我的刷题过程:
时间规划:基本上每天刷题10道+,半个月左右就可以完成100多道题
但是开始每天10道很费劲,一般是自己尽力写,能写几道写几道,剩下几道题看题解,满足每天10+的量
春招时间很快就过去,如果刷题晚的话,每天的刷题量必须要有
早点拿offer、早点实习、早点转正就可以无忧秋招了呀,参加过的才知道秋招一边实习一边找工作一边搞论文多么难受
写题的流程:
- 理解题意,确定理解清楚要解决的问题
- 思考,需要用什么数据结构、算法(写完了之后可以想想能够有更优解)
- 看题解,会写不会写都去看看别人的题解,学习优秀的代码,看完了之后用思路引导自己默写
- 默写,一种情况在ide中写,另一种情况在白纸上写,我们可以锻炼在没有自动补全功能的文本编辑器(Sublime)中写代码,在写的过程中带入第2部分的沟通策略
tips:有的小伙伴面试的时候遇到了自己刷过的题,非常的兴奋,唰唰唰就写完了,面试官当然知道你的小九九了,这样的话面试官一定还会换一道题的,懂了吧\
复习:
复习是非常重要的,很多同学去面试的时候发现之前做过的题目忘记了,理解的不够深,每刷50题或者每次面试之前复习一遍重要的题目
刷题的顺序:
- easy -> middle,easy题量差不多就行,重点刷middle难度
- 排序、链表、二分查找、树、dfs\bfs等类型
剑指offer -> leetcode HOT100 -> leetcode 精选面试题 -> leetcode精选算法200题(附加题,可以不刷)
https://leetcode-cn.com/probl...
- 负雪明烛大佬还整理了面试常考的 100 道算法题整理
负雪明烛常考100道力扣题单:
https://leetcode-cn.com/probl...
这个题单和leetcode HOT100重合度很高,重合度基本在60%-70%,可以互相对照着去刷
- 按照这个方式,刷一周就可以去面试中小厂了, 积累积累经验
- 然后继续刷,面过3次左右,就可以投递大厂准备面试(前提是你把前面面试中的问题都能梳理清楚,再被问到也不怕了)
tips:如果你是还到找工作时候的同学,建议你有事没事去面个试,不为实习,就为感受一下面试,面过就知道了,但是最好不要在自己要找实习的前1-3个月面试
下一篇文章教大家如何做面试复盘
后面内容大家可以在公众号「内推锦鲤」上查看……
之后我将会分享一系列求职相关的经验分享
最后欢迎大家找我内推字节,已经成功内推数人
社招内推链接: https://job.toutiao.com/s/LKs...(无需内推码)
日常实习链接: https://job.toutiao.com/s/LKs...(无需内推码)
暑期实习:https://jobs.toutiao.com/s/LK...(填写内推码RP5RN29)
➕我的v备注:求职/进群-校招/社招-姓名-岗位,邀请你进交流群