当你刷题刷到前中期时,可能会觉得自己开始有一点点的编程思维,心里对自己的技术基本有个大概了解,既看到了顶峰的大佬,也看到了之前的自己。深知短短几个月是到不了企业级的高度,但当你刷题破千时,可能你会感悟出些什么或者会收获些什么。
此文希望对于那些还在默默刷题的同学一些鼓励,希望大家放平心态,不追求速成,但愿能每天进步~!下面来看看同学分享,共勉。
前言
我是从 2019 年 9 月开始陆陆续续的在 LeetCode 上刷题,那时候没有这么多大佬提供题解,没有这么多小伙伴分享刷题感受,我是因为 LeetCode 友好精简的界面而爱上这里的。
启蒙
尽管是科班出身,但大学之前没有接触过编程的我依然在算法和编码的学习上遇到了不小的困难。直到某天 LeetCode 推出了每日一题的打卡活动,我才开始正式的刷题之旅。从起初的咿呀学语,到后面的不看题解 ac,我发现自己在坚持了 2、3 个月之后的确有了一些还不错的进步。
测验
我开始想要看看自己的水平到底如何,我参加了周赛,大概在 400 题的时候我就拿到了 knight 徽章(那时候周赛还没有这么多人参加呀)。于是我被暂时且虚幻的成就迷住了双眼,没有进一步的学习也没有再次想要更进一步的打算。
或许是我一贯的“浅尝则止”的做事风格,亦或是我拖拉懒散的性格,大好的时光被荒废在了自鸣得意和不知天高地厚的满足之中。这种“算法编程还行”的假象在我参加了 Google 的 kickstart competition 之后被无情的揭露,我竟连一道题都没能 ac。我才醒悟,在真正的大海面前,我是如此的不值一提。
思考
有人问工作需要刷这么多题吗?刷题的意义是什么呀?这些算法也不见得会在工作中用到呀。我其实也曾经思考和怀疑过,在怀疑中我浪费了如此多的时间,我本可以学习更多更多算法。如果真的每件事情都要赋予其意义,我想说的是活着已经足够累了,何必要去思考这些。
收获
刷了 1400 题给我带来了什么?除了让我意识到我和大佬们之间的巨大差距,这是无需多言的,还有什么其他的收获呢,我想和大家分享一下。刷题前期(0~200题),这对我找工作的笔试部分帮助尤为重大,因为这是一个从无到有的过程,我在没刷题之前基本不存在编程思维,对于编程如何解决(数学模型?)问题没有任何概念。在前 200 题中我学会了枚举,学会用计算机擅长的方式(简单暴力)去解决问题。刷题前中期(200~500题),掌握一些常规的方法:递归、简单动态规划、简单枚举(子集枚举、枚举排列)、dfs、bfs、字符串处理等等。中期(500~1000题),去学习一些更加复杂的算法:KMP、Robin-Karp、状态压缩 dp、单源点最短路径、拓扑排序,以及一些常用的解题数据结构:树状数组、线段树、字典树、珂朵莉树、并查集、单调栈等等。
写在最后
我知道还有更多的高山值得我去挑战,我的刷题之旅也远没有到底为止,希望下次再看到各位扣友,大家都有美好的未来。
BY /
本文作者:Comrades
声明:本文归“力扣”版权所有,如需转载请联系。
如若转载,请注明出处:https://www.daxuejiayuan.com/41074.html