刷题到底有什么用?你这么刷题还真没用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hakunamatata11
V2EX    推广

刷题到底有什么用?你这么刷题还真没用

  •  
  •   hakunamatata11 2020-12-04 18:29:47 +08:00 728 次点击
    这是一个创建于 1862 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

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

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

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

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

    报名方式

    戳我立即免费试听前三章

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2599 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 01:53 PVG 09:53 LAX 17:53 JFK 20:53
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86