背景
一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcode是什么样的体验?
慢慢有一些赞和感谢, 备受鼓舞, 于是我把所做过的题目用一个script跑了一下,编辑成一篇文章。这个总结页面是这么规划的:
- 题目名称(答案链接)
- 题目难度
- 解题关键点
学习过程中, 我认为, 成事四分靠刷题, 六分靠总结. 在漫长的刷题过程中, 我们常常被海量的题目(据说今天已经有700题)压得喘不过气, 而常常忽略总结的必要性.
然而,在真正面试时,刷题的功底最重要的功能就是在听到题目的的时候,能够快速地反应,在脑中找到相应地关键字,再回忆起相应地答案. 这个时候,对题目的熟知和关键点的掌握就非常重要。
当然,倒不是要将这份总结页面倒背如流,但是起码能在听到某个题目时,很快想到该用什么数据结构和方法,给自己有一个快而准的开端,会让面试的过程流畅许多,少一些紧张。成事之后,又能少几个月蹉跎:)
有朋友问,为什么要把自己做的题目和题目总结放在GitHub上面分享?这些不是要私自珍藏的精华吗?
Engineering的本质就是重复利用已有的精华,在已有的地基上创新前进。在我起初刷题的时候,我也蹉跎我也迷茫,不知道去哪找到做题的手感。那时候我找到许多前辈们在自己blog上面的题目解答,分享,给我带来非常多的思路。我是个强调注重自己思考,走完全程的人,在前辈的见解上为基础,按照所指引的方法尝试,优化,最后交上一份自己的答案,建立起自己的知识网络。这每一步,都离不开最初所得到的指点。
当自己结束了刷题旅程后,心中充满感激。为此,我特别把题目的精华写成中文,方便中国人阅读,复习起来也事半功倍。最后,总结了这篇长文章,希望给还在刷题事业中奔跑的中国人助力,希望大家找到自己心仪的工作!
如果对题目有什么不同的见解,我特别希望你能给我留言,或者到我的GitHub上发一个issue/pull-request, 帮助到更多学习中的代码仔!
GitHub Repo
从开始这个Github已经有将近两年时间, 很高兴这个repo可以帮到有需要的人. 我一直认为, 知识本身是无价的, 因此每逢闲暇, 我就会来维护这个repo, 给刷题的朋友们一些我的想法和见解.
所有内容都来自我的GitHub: https://github.com/awangdev/LintCode
下面来简单介绍一下这个repo:
- README.md: 所有所做过的题目
- ReviewPage.md: 所有题目的总结和归纳(不断完善中)
- KnowledgeHash2.md: 对所做过的知识点的一些笔记
- SystemDesign.md: 对系统设计的一些笔记
- Future Milestone: 我准备将一些有意思的题目,做成视频的形式给大家参考
在这里! 安利一下自己的副业
介绍一下自己! 大家在YouTube或者B站都可以搜到我: "张土汪"
最近一份关于工作的影片: 程序猿二月工作爆肝回忆录!
最近我开始在做自己的Youtube Channel, 虽然还没有定下任何方向, 但是目前我会做几部分的内容:
- 工作经验的分享/目前学习经历: 当然会跟Software Engineer比较相关
- 在美国的生活/学生时代的经历, vlog等
- 个人的兴趣爱好: 唱歌!!!
希望在这里参考刷题经验时, 可以去关注我的Channel! 有任何对在美国工作的疑问, 疑惑, 都可以给我留言/私信/邮件.
希望大家学习顺利, 对未来充满希望!
有问题可以给我写邮件(wangdeve@gmail.com), 或者在GitHub上发issue给我.