算法筑基

211 阅读2分钟

大厂的面试算法是必不可少的,想去leetcode去刷几道题,发现对于从来没接触过算法的我,简直太难了,有的题连看都看不明白。有的能看明白了,只能想到暴力解法傻算,刷了几道题勉强通过了,过几天回来再做完全不记得当初怎么解决的。 所以想通过这篇文章,记录一下一下关于算法相关的基本的概念,以及一些算法问题的解题步骤,核心技巧,希望自己能看到题首先想到思路,再按照思路用代码还原实现。


首先我们先学习两个心法,以下内容来自覃超老师的算法训练营:

什么是五毒神掌:

(覃超老师自创功法,说白了就是多刷题,一道题刷5遍,)

第一遍:

5分钟:读题+思考 直接看解法:注意多种解法,比较解法的优劣,看国外站的题解 背诵,默写好的解法

第二遍:

马上在leetcode写,提交 多种解法比较,体会,优化

第三遍:

第二天,再重复做题 了解自己不同解法的熟练程度

第四遍:

一周以后:反复回来联系相同的题目 (leetcode有好多题很相近,难度递增的题,看看自己是否能举一反三,并加深理解)

第五遍:

面试前一周恢复性训练


什么是切题四件套(此心态针对于,做每道题的时候)

1、Clarifation 看清题目

(审题,和面试官聊清楚你的思路和限制条件)

2、Possible solutions 多种可能解法

(可以先尝试写暴力解法,再看看是什么导致了复杂度变高,有没有哪里可以优化) compare 比较 optimal 加强

3、Coding 多写

4、Test cases 测试用例

(边界条件,极限条件,空安全)

有了这两个心法,可以按照这个思路开始刷题。