别再用leetcode无脑刷题了!
刷题不应该量化为“刷多少道题”,对于刷题来说,永远不是追求数量的堆叠。
你想,LeetCode 上的题难度不等,有简单、中等、困难。
刷100道简单题倒是快,一个星期保证完事,但是有什么提高呢?
刷100道难题更快,刷第一道,然后一直做不出来,看答案也看不懂,直接劝退。
所以刷题一定要掌握一些技巧,因为刷题是一个系统性的工程,要有章法有规划的进行。
看看ACM金牌选手自用的刷题顺序:
1.基本数据类型
没有条件控制,没有循环,单纯的按从上到下的顺序执行代码,例如数学计算,取模等问题
2.判断语句
主要考察选择结构,没有循环,有if,else if,else等判断语句,例如判断闰年等问题
3.数组与循环
主要考察数组、循环语句,以while、for循环为代码主体的题,不要出现字符串,如数组求和等问题
4.字符串与循环
考察字符串操作,例如判断 回文串、求子串等问题
5.栈与队列
主要考察栈和队列的特性,调用库来完成题目要求,或简单实现,比如括号匹配等问题
6.简单递归
递归类问题,超简单的那种,比如 斐波那契
(ps:文章末尾附详细题单,建议收藏后观看,以防意外走丢~)
分享一个昨天收到的知友私信
其实,我在知乎上收到类似的私信真的太多次了,我总结大家的主流想法都是:“找一个名气大的刷题工具,开始废寝忘食的狂刷”,却忘了老祖宗曾说过的因人而异~
leetcode虽然题库庞大,但同考点题目冗杂,太多复杂的知识点交错在一起,很容易心态崩溃,真心不建议新手盲刷,效率低且刷完就忘!
新手我更建议使用国内炼码(lintcode),它的题库都是按照考点分类的,每道题有专门的知识点详解,刷题效率高,刷1道等于在leetcode刷3道的效果,而且还有国内大厂常考题集帮你快速进入备考状态。
【刷题建议】
如果你是新手或者想巩固编程知识,可以根据题目类型or知识点tag进行细分刷题,让刷题变得更高效、有目的性。