昨天是元宵节,过完元宵节相当于这个年正式过完了。不知道大家有没有投入继续投入紧张的学习工作中。年前我想开一个Leetcode刷题专栏,于是发了一个投票想了解大家的需求征集意见。投票于2019年2月1日截止,共有204人参加,根据投票结果显示,大多数人希望通过刷LeetCode能够提高代码水平,在工作中和面试中有帮助,然而有一半人没有接触过Leetcode,一半人接触过,但只刷了一点。几乎所有投票的人刷题的数量都小于100题,说明大家对刷题的认识和热情都还比较浅,可能是因为刷题比较枯燥,又不能马上带来立竿见影的效果,所以不能长期坚持下去。对于本专栏的形式,有一半人希望以专题的形式,先讲知识点,再举例包含该知识点的题,每周发布一篇,其次希望建立微信打卡群,大家一起刷题打卡,相互讨论。大家会的编程语言以python、c++、java(排名分先后)为主,并希望建立一个月或者三个月的刷题计划,并加入计划和打卡群中。
从微信投票结果来看,我发现大家的刷题经验相对比较少,可能是不知道刷题能带来哪些直接的好处,大多数除了面试前刷一些,平时工作中可能压根不会碰。经历了去年的裁员潮后,现在这个时间,可能很多人处于待业找工作或者已经开始找工作的状态,一般对于跳槽而言,通常有种说法,叫金三银四和金九银十,所以如果想要换工作的同学,这个时候正是刷题的好时候。众所周知,LeetCode是一个刷题网站,在16年左右的时候还只有400题左右,结果17、18年数量激增,现在已经有996道题,这么多道题,我们是不是需要都刷完,如何在短时间内快速刷完,尽量不遗漏重要知识点,刷题方法和顺序是很重要的。我本人的刷题经验并不多,之所以开这个专栏也是希望和大家一起刷题打卡,争取在有限的时间内刷完基本的题型。
专栏规划
-
时间:两个月。2019年2月20日~2019年4月21日
-
计划目标:Leetcode前400题。(前400题基本包括了绝对大部分题型,反复刷2~3遍面试数据结构这块基本不会有什么大问题)
-
专栏形式:每周四周五发布知识点和题型讲解(后面会公布整个刷题计划的思维导图和时间安排),然后将包含该知识点的题目放出来让大家刷,周一~周三会抽一天针对微信打卡群里的问题写一篇总结发在微信群里。
-
参与形式:文末会放出刷题打卡群,参与者需付费99元参与,放入奖金池,最后按照坚持下来的人数平分这个奖金池。如果能坚持到最后刷题结束,99元入群费原封不动退还,如果有人没有坚持下来,就作为奖金池的一部分最后平分。举个例子,如果有100人参与,每人99元,奖金池为9900元,两个月后只有50人坚持下来,那么每人平分下来就是198元。
-
刷题网站:www.leetcode.com 本刷题专栏主要用英文版Leetcode刷题(有中文版力扣,但是相对于英文版的Leetcode,少了Discuss区,这里面有很多精华,所以建议大家用英文版刷题)。所以大家在英文版Leetcode官网上注册一个账号,最好是空白账号,把以前的记录都清零,从头开始。
-
如何检查:每周五在群里统计上周每人刷题的数量,大家自己在群里自爆,发submission截图,然后我统计到excel里看每周大家的刷题情况。(如果有更好的方式也欢迎提建议,我的检查方法主要靠自觉 - -)
-
微信群规:因为是第一次建打卡群,所以不希望这个群最后流于形式,大家设置一个消息免打扰就忘记刷题了。所以我初步拟定了几条群规,希望参与的人能遵守:
1.本群不要发广告,不要开车,不要发与刷题无关的内容!发一次提醒,两次直接踢。我希望大家刷题就好好刷题,不要在群里发一些乱七八糟的东西,希望大家能理解。可以发每天刷题遇到的问题,或者坚持不下来了想求助也可以,也可以发在公司面试时遇到的题目等都可以。
2.每周四周五放出刷题知识点和题型总结,然后下周五下午五点以前,大家汇报自己的刷题进度+submission截图,我周六统计后,公布还在坚持的人数。
3.和气谈论,就事论事,不要人身攻击。
-
入群方式:已截止
LeetCode前400题思维导图
思维导图如下
注:思维导图的内容和顺序可能会不断修改,在我的github中会不断更新leetcodebook-github(https://github.com/huxiaoman7/leetcodebook)
两个月刷题计划安排
两个月的时间还是比较紧张的,除了我每周四、周五会在公众号定期发布知识点和题型总结外,平时也需要多练习。前四周以基础数据结构为主,包括数组、链表、栈与队列、二叉树与图、字符串以及其他数据结构(set、map、hash等)。后四周主要以算法为主,包括排序算法、二分查找、搜索算法、动态规划这些常见的算法,最后一周安排的是数学类题目,和其他常见的题型总结。具体的时间安排如下:
Q&A
-
1.如果我的基础比较差,跟不上大家的刷题进度怎么办?
如果基础较差,只能平时或周末抽时间多下点功夫补补了。可以先刷一下中文版力扣的初级算法专题,基本涵盖了比较常见的题型,刷完后如果觉得哪一块知识点比较弱,可以结合【数据结构与算法分析】这本书来理解知识点。
-
2.我可以只看公众号的文章,不参与刷题打卡吗?
完全可以。公众号的文章阅读是免费的,有问题也可以在公众号提问和留言,参与打卡群是为了强制自己在两个月内全部刷完前400题给自己一个强制约束力,如果你的自制力足够强完全可以不用参与打卡群。参与打卡群并坚持下来后也可以退还入群的费用。只有中途退出没有坚持下来的才不退还费用。如果你在刷题过程中遇到问题可以在群里随时提问,我看到了或者有会做这道题的同学看到了可以及时解答或互相讨论,并且每周一~周三我会抽一天时间将之前群里提问较多的题目总结一下发到群里。此外,我会在群里不定期分享各个公司的面试算法题,帮助最近准备找工作的同学应对面试。也鼓励最近在面试的同学分享算法题,给大家划重点。
-
3.公众号不利于后期复习,请问还有别的方式阅读每周的文章吗?
有。每周的文章我在发布并整理好大家的问题并解答后,会在下周放到leetcodebook-github,两个月的刷题计划结束后,会生成gitbook供大家后续阅读。
-
4.如果我有更好的解题方法怎么投稿?
欢迎大家提出更好的解题方法,投稿方式可以在群里发布,或者github-issue里提issue,本人能力有限,不可能掌握所有题型的最优解法,所以欢迎大家讨论&留言&提issue,非常感谢!
对于本文的建议可以在下方直接留言,也可以戳微信公众号原文,关注公众号(Charlotte数据挖掘)后在下方留言,欢迎大家提建议~
ps:留言中有提到深度学习系列是不是不更了,后续会继续更新的,剩下的还有检测部分和nlp部分,检测部分会在近期更新,nlp部分我会写好后给做nlp的同学审核后确保没有错误后再发出来(因为我是做cv的,所以nlp的内容没有专业做nlp的同学了解的深,不希望写出来的文章有很多错误,所以会更新的慢一点,希望大家理解啦~)