每一个算法不扎实的程序员,内心都没底!
算法的重要性不言而喻,但是算法学习起来也是经常让人一头乱麻。就好像算法学得好这件事,只是那些极聪明人的特权。但是大多数人都忽略了,“聪明人”也没有脱离一个大前提——长期大量的训练+科学合理的方法。
今天小编就来分享一些算法刷题方面的经验与技巧。(友情提示:对于算法高手和 ACM 常客来说,可能不太适用,仅供参考)
选题:由易到难
算法训练是一个系统工程,需要打好地基,一步一步加深难度。如果一上来就做一些特别难的题目,很容易因为半天解不出来而打击刷题信心。
如果本身基础不牢、熟练度不够,就更应该从简单开始,逐渐过渡到中等,最后才去刷那些难题。
刷题:分类进行
算法与数据结构是算法学习的重中之重,简单的总结一下,大约有这些内容:
算法:排序算法、搜索算法、图论、动态规划和基础技巧等;
数据结构:数组与链表、栈与队列、树与图、哈希表、堆、字符串等;
在日后刷题中,可以按照大类别下的小类别进行刷题,这样能够对每一类型的题目加深理解、掌握巩固,大大提升刷题速度。
解题:三步成“诗”
1.读懂题目
有的题目很直接,有的题目很隐晦,所以看到题目后,一定要先确保自己真正理解题目了。
2.单纯分析解题思路
有意识地将这一步骤单拎出来,不要跟编码步骤混淆在一起。也就是说,在分析推导题目解法的时候,不用去想代码怎么写,不用去想用什么库,定义什么变量,用多少层循环,就想着在逻辑上,这道题目要怎么解。
3.将思路转换为代码
怎么定义变量,保存状态,用递归,还是用循环加辅助数据结构等,都是将思路转换成代码要做的事情。这个能力也需要平时刻意去练习。
算法的封装
对于这些算法的刻意练习。一开始的时候,要看算法书的描述,确保自己理解了算法的思路,然后尝试自己实现一遍。
实在写不出来,就参照或者直接抄。一个算法花几天的时间,大部分人都是可以理解并自己实现出来的。
保持持续的动力
关注刷题时的正反馈。不要死磕!保持“长风破浪会有时、直挂云帆济沧海”的劲头!
为了帮你快速提升算法能力,拉勾教育联合力扣(LeetCode),为你准备了一套免费的算法资料包。
你将获得
基础:超详细算法学习路径和必备书单;
深挖:70+经典真题演练(含深度解析);
训练:LeetCode全年试题汇总;
实战:独家揭秘阿里技术资深大佬进阶经验;
技巧:技术工程师如何准备简历和面试。
如何领取?
扫描下方二维码,限时免费获得!
如果觉得《干货丨如何get到学习算法的正确姿势?》对你有帮助,请点赞、收藏,并留下你的观点哦!