刷一道leetcode花了一天,这正常吗?

刷一道leetcode花了一天,这正常吗?

文末给大家准备了算法刷题的资料!看完有份!

最近,一个大二的非CS专业,在自学想转码的学生跑来问我,去年12月学的c++,和数据结构,一月初开始刷力扣,每一道题都刷得很费劲,得看题解才能做出来,有些题甚至要花一天。比如,k个节点反转。这样正常吗?

相信不少新手小白刚开始刷leetcode都会有这个问题,时常崩溃。这太正常了!你完全不必因此怀疑自己。

只不过,刷题不是为了自我感动,以上岸为目的刷题其实是有套路的。

一、FAANG & BATJ算法面试考什么

程序员面试中,至少必考一轮算法面试,至多不封顶(像TwoSigma那种对冲基金公司的技术面试,会达到7-9轮,其中就可能有5轮都是算法面试)。

作为面试官看重的是编写软件,解决问题,调试和测试软件,阅读代码和合作能力。

编写代码的时候你需要考虑到:如何将想法转化成代码?如何用代码实现?还能不能优化?...

能解决问题的求职者,是面试官最想看到的。算法面试看重在解决问题时如何表达自己的逻辑思维。所以平时可以一边做题,一边分析自己是如何解决问题的。

调试和测试软件的能力,也就是debug能力,就这么说吧,最粗暴有效的就是多刷题!对算法越熟练debug能力也就越强。

二、刷LeetCode着重刷什么样的题?

算法面试中并没有把所有的知识点都作为重点。《FB面试官用学霸思维玩转算法面试》根据往年的面试常考算法题总结了算法和数据结构常见知识点,颜色越浅考察频率越低。

这也就很直观暴露出很多人刷题500+往上了依旧过不了面试的弊端,本质还是刷LeetCode偏离了“算法面试”导致的。

leetcode虽然题库庞大,但同考点题目冗杂,不建议新手盲刷,效率低且刷完就忘!新手建议使用国内炼码(lintcode),它的题库都是按照考点分类的,刷题效率高,刷1道等于在leetcode刷3道,还有国内大厂常考题集,非常针对大厂的算法面试。

另外,大概总结了一份高频算法知识点,以及对应的刷题数量,如下:

最重要的是,算法≠算法面试,大厂面试是有套路可循的!

祭出大佬爆肝3个月、增删16次的面试常考算法模板cheatsheetV5.0

面试前:

①先看例题,看自己是否能自行用相应的数据结构和算法解题。

②根据模板,解题。如有必要背诵模板。

③通过在LintCode上刷题,巩固其使用条件和时间复杂度

面试中:

①通过使用条件判断这道题用哪种解法

②套模板解题 当然,像是双指针、排序算法、二叉树、bfs、dfs的使用条件、时间复杂度、代码模板,这套模板里已经全部总结好了,直接套就完事儿了。

举个例子:

以二分法 Binary Search为例:

使用条件:

1.排序数组 (30-40%是二分) 2.当面试官要求你找一个比 O(n) 更小的时间复杂度算法的时候(99%)

3.找到数组中的一个分割位置,使得左半部分满足某个条件,右半部分不满足(100%)

4.找到一个最大/最小的值使得某个条件被满足(90%)

复杂度:

时间复杂度:O(logn)

空间复杂度:O(1)

代码模版:

掌握这个模板之后,就可以轻松解决类似例题:

⼆分查找(在排序的数据集上进行二分)

在排序数组中找最接近的K个数(在未排序的数据集上进行二分)

书籍复印(在答案集上进行二分)

当然,像是双指针、排序算法、二叉树、bfs、dfs的使用条件、时间复杂度、代码模板......这套模板里都总结好了。领取条件超简单,只需试听这位ACM大佬的算法面试公益讲座,第一节免费课就可以download这份算法模板!新人注册即可免费试听~

三、刷题小技巧:

1.刚开始刷题时,每道题给自己20分钟,如果想不出来就直接看答案。

2.前期,按照算法与数据结构的知识点刷题;后期,隐藏掉算法与数据结构的tag混着刷。

3.一道题,至少掌握2种解法,最好能掌握3种——标准解法(面试常考、面试官能理解)、最优解(自行钻研、炫技)、暴力解(实在做不出来的时候还有个保守解法)

好啦,以上就是关于算法面试的一些心得分享。此外,这里还整理了最新的coding面试&刷题资料,戳这里即可免费获取!

🎀 相关推荐

美团收购摩拜单车 膜拜品牌保持独立不变
🎯 best365足球

美团收购摩拜单车 膜拜品牌保持独立不变

📅 10-20 👀 5905
王者荣耀怎么拜师
🎯 best365足球

王者荣耀怎么拜师

📅 07-02 👀 4089
关于IRC你所必须要知道的规则
🎯 365体育备用网站

关于IRC你所必须要知道的规则

📅 10-27 👀 9549