刷了 300 题还是一知半解|勿堆量,重方法
新手同学在第一次用力扣网站刷题时,可能会遇到很多问题。
之前看到一个同学表示,在力扣刷了 300 道题,做中小厂笔试时还会遇到算法题没有思路的困扰,反应遇到一些算法题脑子里有思路却没有判断出问题的本质,特别是在美团面试时遇到的算法题,交卷都没过。而刷了 200 题的室友却在短时间内找到了解题的方法。让这位同学百思不得其解。
思路
其实之前我们也分享过很多大佬刷题的攻略,有些同学依葫芦画瓢,先按标签刷,一类一类的刷,做完总结后做回顾,做题的时候也试着用各种思路解题,但一上场考试,就又没把握了。
方法
都说「预则立,不立则废」
刷题其实和做项目一样,不能凭感觉,要靠体系,总结 4 点。
需明确目的:提升自己的技能 / 应付面试 / 纯粹爱好。
指定计划:SMART 原则,具体化,可执行,可完成,风险评估和截止日期。
跟踪反馈:OKR 工作方法 + 日清日结。
复盘交流:回顾目标,评估结果,分析原因,总结经验。
做到之后让结果尽量量化。
举个例子:
以 Hot 100 道题目,需要多久刷完?
评估下自己完成一道 简单 题目的时间,20 min /40 min / 60 min。
评估下自己完成一道 中等 题目的时间,40 min / 60 min / 80 min。
评估下自己完成一道 困难 题目的时间,60 min / 80 min / 120 min。
自我强化
心理准备:战前动员,万事开头难,好走的路都是下坡路。
自律:期望别太高,积小胜为大胜。
上进心:偶像的力量是无穷的,找一合适的偶像激励自己
坚持:论持久战,饭要一口口的吃,路要一步步的走,刚开始你肯定是死磕,但后期应该要有自己的判断,选择性死磕。
那有人又会说了,我量达到了,还是无法完全对待题目。
其实刷题数量只是一个参考,算法能力要看一个人掌握的算法知识,思维能力,编程能力等等的综合能力,并不是说刷到 100 题或者 1000 题就一定能解某个题。
有些题可能需要某些特定的前置知识,某种算法,某些独特的思维角度,足够的编码技巧等等条件。
要想能成功解出一题需要自身拥有大于等于这些条件的能力,但凡有一个能力不够(比如不清楚某个前置知识,或者其对应的算法没有掌握)基本上就很难解出这题。
所以解不出来一定是有原因的,你需要去分析其中的具体的原因在哪里,然后去针对性的解决。
这也是刷题的作用之一,作为对自己掌握算法的检验,通过反馈能知道自己哪里没有掌握好,之后通过学习或者训练去攻克对应的内容。
分享
根据以往站内高分选手的分享总结,在学习算法的同时也刷对应的题目,300 题应该是能覆盖大多数基础算法,也会形成一定的解题思路,但并不绝对。
按照开头同学遇到问题的描述,可能和部分同学一样,没有掌握或者没有形成自己的解题思路。
遇到此类情况,可以通过随机刷题来解决,也可通过参加 周赛 和 模拟周赛 以及 每日一题 来训练自己解决问题的能力,锻炼自己的思维方式。另外一种实践方法是去找与自己同等水平或者现有难度再高一点的题目去刷,这样一来,刷题范围会更加可控。
每个人在学习算法之前所掌握的知识不同,学习范围不同,以及学习方法的不同,这些因素都会导致学习效率的不同,可能会造成不同的人花相同的时间刷相同数量的题,但结果却不一样。
比如一个算法题,A 学过,B 没有学过,刚好出这个算法的题,那 A 就会做而 B 不会做,但并不意味 A 的算法能力强于 B,或许换一种算法的题可能就是 B 会做而 A 不会做。除非是 A 所掌握的算法知识范围全面覆盖 B 所掌握的算法知识。
建议大家在刷题的过程中多与同伴讨论,或者多看下其他人的解题思路多交流,如果遇到卡壳的题型,可以寻找别人做题的方法去反推。思考别人做出题解的思路。还是那句话多交流,学习别人的长处,补自己的短板,化作自己的技法,这也是一种高效的学习方法,提升自身的学习效率,何乐而不为呢。
BY /
本文作者:仪剑骑士
编辑&版式:Janson
声明:本文归“力扣”版权所有,如需转载请联系。
点个在看,少个 bug
微信扫码关注该文公众号作者