面试技巧–算法篇(1)高频算法汇总

为什么面试要考算法?

或许很多准备算法面试的人都会有这样一个疑问,为什么所有SWE的面试都要考算法?答案是适合面试 真正工作过的人就会知道,当初刷过的90%的算法在工作中都是用不上的,但实际工作中遇到的问题很难在一个45分钟的面试中去讨论,为了统一标准,算法题也成了面试官最好的选择。 对面试官而言,算法面试有以下几种好处:

面试官知道我刷题了吗?

答案是肯定的,毕竟这或许就是他自己走过的路。

面试中会遇到原题吗?刷多少题可以去面试?

面试官不仅知道我们刷题了,还可能在leet code上直接找面试题。 试想一下,所有的面试官都有自己需要全职工作的内容,在这种标准化面试中,又有多少时间精力去每次都自己出新题拿来面试呢? 所以,面试中确实是有一定概率会遇到原题,如Facebook, Amazon等都是被大家熟知爱出原题的公司。 但大家其实没有必要寄希望于出原题,毕竟即便是新题,也还是老算法,与其刷题上千执着于遇到原题,不如刷题一百但高频算法各个击破。

面试中可以套用模板吗?

是也不是。 仔细想一下就会明白,面试不是考谁聪明,不是让你临场创造新的算法,所有面试中你会遇到算法,都是被前人提出、总结、应用过无数次的,从这个角度而言,面试当然可以直接套用模板,并且鼓励套用模板。 那为什么又说不是呢?面试中切记不要死用模板,说白了,面试是一个沟通的过程,相比于你写的代码,面试官更希望了解你是如何思考这个问题。 毕竟面试官是在选择未来的同事,同事之间一起做算法题的概率很低,但是每天一起讨论问题是必然的。即便的套用模板也要按照以下方式与面试官沟通:

面试中的高频算法有哪些?

算法数十种,准备面试的时间和精力却十分有限,有针对性的算法训练才可以事半功倍。 根据leet code算法题目的标签数据,可以统计得出算法面试中的高频算法如下表所示 只要将表格中列出的高频算法个个击破,再辅助良好的编程风格,算法面试就不再是难事。 pending

算法复杂度总结

面试中,面试官往往会要求面试者分析算法复杂度,或题目中对算法复杂度已经有一定要求,这种情况下,我们可以根据每种算法的复杂度关系,用算法推时间复杂度,或用时间复杂度推算法。 以下为一些常见问题的算法复杂度: pending

总结

在之后的帖子中,会逐一讨论高频算法的模板及适合的应用场景。

主页

上一篇: 面试技巧篇 – 编码风格 (Coding Style)

下一篇: 面试技巧篇 – Behavior Question完全总结及解析