不准访问
- 积分
- 322
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2017-2-21
- 最后登录
- 1970-1-1
|
注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
前前后后刷题也一年了,很多感想。所以想总结出来。我也不知道自己说的对不对,所以正好和大家交流,相互学习。
最核心的三条:
1. 想刷的好没别的,唯手熟尔。
刷题跟高考数学本质一模一样。想想过去高中三年啥事儿都不做,天天做卷子,看到题就大概知道怎么做。而如今因为生活忙碌,各种事情distraction,导致刷题可能变得时间不够。再看看leetcode contest那些20分钟做完四道题的牛人,很多都是有ACM竞赛背景的。当然或许他们的确天资过人,但我更相信他们是从小开始训练coding,见多识广,经验丰富,submission上万遍,付出无数努力才能维持如此高的应试水平的。
另外,对于所有leetcode mediun题甚至一些hard题,也是要求你在半个小时甚至更短时间内做出来,不是要你花几个月几年时间做调研写报告或者做research探究人类未知,所以内容本身应该是很简洁的一个小问题(当然简洁不代表简单)。所以刷不出来?why?就一句话:刷少了。知识点不够熟,或者XX算法没见过,或者这种题型很陌生。不会的东西都可以在网上找到答案/资料/训练,而不像做research你面对的是unknown的东西需要花费巨大精力去不断尝试和研究;所以不会的就学习,缺少的就补课,每学一点,就进步一点。非常公平。
所以主要还是自己努力的不够。这是我最大的感受。
2. 最好做到不间断。
上面说的是刷题本质,回答的是what的问题。现在说一下how的问题。
我的一个感想就是,从应试记忆的角度来说,一定要不间断的刷题,时刻保持手感。中间如果停掉一个月或者几个月,再pickup起来的成本就会很大。这也是我自己的一个重大教训,我自己毅力不够。往往别的事情一忙碌,就彻底把刷题抛在脑后了。过了一个月再回来狂刷。但我慢慢发现这个方式并不好,那些刷题很牛的人,他们一定是细水长流的,每天刷,哪怕每天只submit一次也可以。
当然说的容易,做起来难。就是毅力。
3. 不停的总结套路+题型。。
如果说刷题有啥技巧,最核心的我觉得就是要不停的总结套路和题型。当然还没刷到200题的就不要care这个,先把量做到足够多才有必要总结。还是那个古老的规律:好记性不如烂笔头。之前说了,刷题本质就是努力,而努力的核心就是不停刷;如何高效的不停刷呢?就是做总结笔记。而且一定是参考其他人笔记后,做出的最适合自己的那个笔记,宛如自己的指纹,全世界独一份属于你的。比如,DFS/BFS画个图写个pseudo code总结下。然后有的题为啥BFS比DFS强?拿一个题做例子总结一下。有的题是DFS/BFS+union find;有的题是DFS/BFS+DP,分别总结下。backtracking里各种subset,permutation,combination总结一下看看他们的区别。Comparator怎么写?忘记了?赶紧总结个模板。类似的,2D array/priorityqueue如何sort? 。。。
不管任何大模板,还是小细节,都要做笔记。不管你用evernote,github,gitbook还是什么别的。
除了少数技巧特殊的题目,其他所有题目一定掌握核心灵魂,而不是死记硬背。我过去就犯过这种错误。已经两个月没刷题了,突然来个面试,慌了,所以赶紧把code背一背寄希望碰到原题。最后面试的时候一塌糊涂。而我那时候还没有很认真的做总结。所以有一份刷题总结在手,作为面试前复习的精华,就不怕任何突如其来的面试了。
所以刷来刷去,刷出来的就是套路。如何掌握这些套路?努力呗。
另外还两小点。
第一就是我觉得现在题型核心就是DFS/BFS/Tree/Backtracking/UF以及延伸出的一些东西,这些都是一条绳上的蚂蚱(说的不对请指正)。当然还有一个点就是DP。 但是过于难的DP实在是想不出来。所以我不知道DP这个东西也是可以通过不停努力掌握的吗?
第二就是,面试的时候和leetcode刷题还是很不同的。lc刷习惯了会产生对那种环境的依赖感。而实际面试可能要你自己写main function;或者白板面试。这些都是要额外训练的。
以上都是个人感想。不知道说的是否正确。希望大家指正。相互交流学习进步。
补充内容 (2019-2-26 01:25):
这个帖子写了快一年了。其实没啥特别的内容。现在觉得要疯狂面试,让刷题活起来,而不是埋头刷题。。有机会再来写感想。。。 |
上一篇: 刷题记录自我监督下一篇: 请教一道面试题关于百万级别grid里找联通结构
|