刷题经验总结

6/2/2019更新。这篇文章主要分为两个部分,在前半段我们讨论了刷题的细节和姿态,在后半段讨论了如何在漫漫征程中保持战斗的热情 

现在刷题的军备竞赛非常夸张,大家都是被逼的。当然有些公司不怎么考算法题,不喜欢刷题的同学可以试一下,比如twitter;但是大部分一线公司需要通过算法题来刷人(算法题真没什么用,主要就是刷人用的。)

关于刷题我最爱的一句话是结硬寨打呆仗(曾国藩湘军打太平军时的策略)。 刷题没有捷径,要下笨功夫。一定的刷题姿势有一定帮助,但是不是那么重要。 当你刷题数量不到 200道的时候,说什么姿势都是白瞎。

数量到了以后也不要贪图题目数量,要追求以下几点

1. 旧题一定要做熟,短时间内要bug free的写出来。如果你不能bug free写出来,那你还是不熟, 请继续练习没有借口。
2. 想想一题多解,每种办法的优缺点是什么。
3. 最优解. 但请勿追求奇技淫巧。
4. 时间复杂度,空间复杂度。
5. 代码简洁,规范,美观,可维护性。
6. 掌握一些套路,并熟练使用。
7. 每道旧题都当新题来做,从头分析, 绝对不能偷懒。
8. 要练习讲题,面试的时候要能够讲清楚。先从high level, 再讲detail。
9. 分类做题可以对特定知识点强化记忆,很有效果。
10. 不要上来就刷hard题。在算法没有基础的情况下,手刃hard 是一件很有成就感的事情,不过你真的需要这个成就感吗? 先刷easy, medium 把所有知识点扫一遍盲最重要。
11. 基本功一定要扎实, 基础题要写的非常熟。比如树的各种traversal, quick sort, merge sort, heapify, reverse linkedList, recursion 

CS面试真的不是考智商,只要你努力就能搞定,只要努力就有机会。

下面是每一条的详细解读

5。 为什么代码要简洁规范美观 ? 代码是给机器读的,同时也是给人看的。某一天同行会看你的代码,你一定要做一个好的同事,让别人更容易看懂你的代码节省后续开发的时间。 有的时候你会发现,为什么明明我算法对,代码也对,可为什么面试没过,一条原因可能是你代码太丑了,别人一看就是半路出家的(没有恶意因为我也是半路出家的)。当然还有很多其他原因可以挂掉面试,随缘随缘。

2。为什么要一题多解:一道题可以有多种解法,但我们掌握一种不就够了吗? 当你遇到这道题的变种,你掌握的唯一一种解法可能不能工作,这时如果你知道这道题的多种解法的话,可能另外一种解法更适用于这种变种。当你袖子里有足够多的trick时,你就能更容易面对各种变种各种follow up。

7。 为什么要把每道题当做新题?a. 面试的时候要展示你的思维过程 b. 思维训练,训练的多了,你遇到了新题就习惯了分析就不觉得难了; 训练的多了你就分不清新题还是旧题了;训练多了,遇到新题其实也是旧题了

11 为什么要反复写基础题目。基本题目的code是implemention层面的, 复杂题目的算法可能比较复杂,但是他的code很多时候可以分解为多个基础题目的组合。这时简单的sort, traversal, linkedList 一定不能成为你的拦路石。 应该机械化的能把基础题目快速写出,把思考的注意力集中在算法层面。


下面说一点别的方面,如何保持我们的战斗热情。
刷题转码是一个很漫长的过程,以前传说的男刷半年女刷半月基本已经不太可能。一个理工科背景但完全没有编程背景的人花上18个月以上非常常见。在这样长的过程中保持高昂的战斗热情是很重要其实是一件很难做到的事情。

首先我们要制定一个目标,要有一个goal.
这一点是老生常谈,但是有时这件事情太司空见惯所以被忽略, 所以我这里特意提了一下下。我还想强调一下这个目标一定要是可以衡量的,可以量化的。一个比较符合这个标准的目标的例子是“600道题刷三遍 ”, 这个目标可以量化可以衡量可以分阶段实现。一个不太好的目标是“要刷进FLAG", 这个目标很好但是不好量化。

第二点是我着重想讨论的就是我们一定要有一个进度条来测量我们的进度。进度条是程序员最伟大的发明之一。进度条给人一种掌控感。经常查看自己的进度条可以知道自己离目标还有多远, 不致于路途太遥远而中途退出。
一个可以量化的目标能给我们一个有效的进度条。每天看着自己的进度条一点点向前推进,能给你一种成就感。山高路远,你需要一个进度条来保持战斗热情。一句题外话是之前有个新闻说中华民族伟大复兴的任务已经完成了62%。有点搞笑,但你差不多就需要这么一个进度条,知道自己离自己的目标有多远。
我自己常用的进度条主要有以下几个, 1. 700道题的完成比例; 2. Leetcode 个人页面 5个五角星你把鼠标放上去会看到一个数字,这个数字是你刷题量的世界排名; 3, Leetcode weekly contest的排名, 当你周赛稳定前400名的时候去面谷歌就没什么问题了。

我还写了一篇博文讲自己大龄转码工的经历

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • 2017深圳磨房百公里活动在经历了一波三折之后终于在4月22日拉开了帷幕,咱们创维数字也有一批徒步爱好者组团参加了...
    猎鹰仔阅读 626评论 0 2
  • (图片临摹于孩子大学报道日填写资料时我悄悄拍下的) 儿子去遥远的南方读书了。 送他的那一刻,我其实佯装不在乎,使...
    彦渊阅读 310评论 0 4
  • 9月4日,我收到了微信公众平台发来的消息。我的公众号拿到原创了,只用了不到七天的时间。我从没想到过意外来得那么突然...
    沙滩上的金毛阅读 1,630评论 26 49