V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hakunamatata11
V2EX  ›  推广

LeetCode 刷题一到面试就忘怎么办?

  •  
  •   hakunamatata11 · 2020-08-04 19:48:16 +08:00 · 1762 次点击
    这是一个创建于 1360 天前的主题,其中的信息可能已经有所发展或是发生改变。

    忘了很正常。

    「无忌,我教你的还记得多少?」「回太师傅,我只记得一大半」

    「那,现在呢?」「已经剩下一小半了」

    「那,现在呢?」「我已经把所有的全忘记了!」

    「好,你可以上了…」

    张教主的这个名场面也时刻发生在刷题中。想靠记住每道题的解法显然是不现实的,况且题目只会越刷越多。

    刷一道算法题,求解的思考过程远比知道最终解法要重要。就好比数学 /物理定理,你知道了会用是一种境界,能完整证明它们又是另一种境界。所以如果可能的话,尽量不要让自己陷入靠记忆解决问题的地步。

    要怎么做呢?我提供一个以前同学的例子。他本科是工科,研究生转了 CS 专业,毕业后刷题 3 个月拿到了 Facebook,Google,Amazon 的全职 offer 。他刷题的方法就是做笔记,这是他 3 个月刷题过程中整理的笔记,将近 900 页,你们感受下(笔记链接点这里

    他刷题的原则很简单,不要把“题目数量”作为刷题指标,而应该把问题拆解,拆成具体的问题模式和对应的解决方法。用图来表示的话大概像是这样:

    每道算法题都有其构成的基本单位,比如有什么数据结构、用到了某某算法等。通过将问题拆分,做类比分析思考,自行做“聚类操作”,我们就能构建自己的算法知识体系。这个过程做笔记是最有效的。

    比如很多问题都可以转化成“Tree”或者“Graph”,或者“递归”

    • 搜索问题基本是多叉树,有些问题就是以 root 为起点的“走迷宫”——DFS + Backtracking
    • 有些在搜索 /子问题树里,要按特定顺序进行处理——在二叉树里,我们叫它 pre-order / in-order / post-order 遍历
    • 有些时候,树的结构与子问题重复性很高——于是有了记忆化搜索 / 动态规划

    所以刷题实际上是不断抽象,越刷越少的过程。面试中遇到了所谓“新题”,很可能只是我们抽象总结得还不够。

    很多题看过答案后,你以为自己懂了,其实并没懂。

    就拿动态规划来说,刚开始刷的时候往往都摸不着头脑,看了答案之后恍然大悟,原来是这样,只要找到状态转移方程,之后就简单了。

    然而答案一般直接告诉你了状态转移方程,却不会说明是如何找到状态转移方程的。这个思考过程在刷题中其实是欠缺的,下次遇到动规题还是很大可能不会。

    回到刷题本身,不要寄太大希望于“速成”。一般要制定一个至少几个月的学习计划,根据自己当前的基础和水平做针对性训练。

    针对算法面试,我也总结了面试常见知识点的考察频率和建议的刷题量。

    在我主讲的《九章算法班》中,除了会讲如何刷题外,还会谈谈面试中正确沟通的技巧,培养 coding style 和 bug free 的能力。按照我的方法刷题,1 个月就能搞定算法面试。

    戳我即可报名

    3 条回复    2020-08-06 20:02:05 +08:00
    Martox
        1
    Martox  
       2020-08-05 13:46:40 +08:00   ❤️ 1
    不针对楼主,就想知道这个推广主题怎么屏蔽掉
    hakunamatata11
        2
    hakunamatata11  
    OP
       2020-08-05 14:03:49 +08:00
    @Martox 闭上眼睛
    Junzhou
        3
    Junzhou  
       2020-08-06 20:02:05 +08:00
    推广这个节点没问题,有问题是推广的标题和内容比较套路,经常会被骗进来。
    本来以为:一个 v2er 有问题,点开,打算顺便学习各楼的建议。
    进去之后:发现是广告。

    然后:叉掉页面,或者 nfakjhfkjsa,叉掉页面
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3848 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:17 · PVG 18:17 · LAX 03:17 · JFK 06:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.