当前位置:   article > 正文

刷一道leetcode花了一天,这正常吗?_力扣写一道题花一天时间

力扣写一道题花一天时间

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

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

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

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

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

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

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

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

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

  3. 调试和测试软件的能力,也就是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%)

复杂度:

  1. 时间复杂度:O(logn)

  2. 空间复杂度:O(1)

代码模版:

 

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

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

三、刷题小技巧:

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

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/602814
推荐阅读
相关标签
  

闽ICP备14008679号