练习时长一年半,算法蒟蒻的成长记录

练习时长一年半,算法蒟蒻的成长记录

写在文章前:

这篇博客主要是记录这一年半来升级打怪的记录,虽然一直想做这件事情,但还是太懒。近期学习环境的变动给我带来了一段较长的空闲时间,每天就是啃入门经典、刷算法题,持续了两周,下午想换点心情,于是写下了这篇博客。

开始征程

我是大学毕业前夕才开始接触算法的,那时候刚考完研,准备找一下暑假实习工作,开始跟基友一起刷算法题准备抓住春招的尾巴在暑假找点事干,于是战斗场地从考研自习室搬进了图书馆,《高数十八讲》也换成了《算法与数据结构》。
其实大二的时候也啃过一段时间《算法与数据结构》,但是没坚持下去,这也是我大学以来挺后悔的一件事,现在回想起来,如果当时坚持下去是否能拿个省赛牌子,加上当时大学宿舍学习氛围还是有一点的,说不定也不用考研,直接冲大厂了,呜呜呜。
刚开始学习算法的时候,一边刷LeetCode一边啃《算法与数据结构》,和其他人可能不一样,我是按题目编号直接开刷,而不是按简易程度,碰到中等题有时候还真是一杯茶,一包烟,一行代码写一天。这段时间因为要保持毕设的进度,所以断断续续在毕业前也只刷了50多道题,算法书啃完了前四章。

刷经验

毕业后还是没找到实习,原因是实习时间太短都被拒了,不过好歹在毕业前体验了一下面试,去的是一家做叫做深析智能的生物医疗公司,我至今还记得面试的三道题:第一道题是个排序,不过要O(n)的时间复杂度,很明显是个桶排,但是我还一直傻傻的在那憋快排的代码,第二题是个简单的字符串循环移位,第三题是斐波那契数列的递归与非递归。
毕业后,老爸安排我帮忙看他的零售店,白天广东很热基本没人,我就刷题,夜晚人比较多,就看点《易经》、《算法与数据结构》之类的,早上基本是6点多起床去跑步,然后吃完早餐睡个回笼觉睡到11点的样子,所以一天差不多只能学四五个小时的样子,这时间差不多是在练习基础题的样子。LeetCode的周赛我有时间基本都会打,记得第一场周赛第一道题都没做出来,当时以为是一道博弈题,但现在仔细想想,应该就是个贪心问题,赛后想学习学习大佬的代码,但基本都看不懂,于是周日上午的比赛也成了我最期待的一件事,因为我迫不及待地想证明自己,但是每次都是被虐得很惨,基本都是一道题结束,偶尔能做出第二道题。暑假的两个月时间,从50多道刷到300多道,平均每天四五道的样子,现在回想起来,毕业后的暑假过得甚至比在学校还充实,每天晚上回家还会练两组keep,也坚持锻炼了两个月时间,无论哪方面这段时间都让我自信了不少。

练级

上了研究生之后,由于课程比较多,能学习的时间本身就不多,第一学期导师基本就是放羊,我也不怎么去实验室,基本在宿舍,除了打游戏就是刷题,陆陆续续也刷了100多道题,《算法与数据结构》也啃到了第七章排序,这段时间实现了第一次周赛AK,第一次前200、第一次前100,每一次都很激动,我还截了图留作纪念,11月之后的周赛基本都能保持在3题左右,状态好的话还能AK,所以后面基本不怎么刷题了,只是每天一道题来保持手感。
在这里插入图片描述

在这里插入图片描述

冲关

寒假后,由于疫情原因一直锁在家里,在老家那段时间,我尽量保持每天学习四五个小时,但是挺难的,因为搬新家,家里实在太舒服了,也想借着这段时间陪陪爸妈,我甚至跟爸妈把《倚天屠龙记》跟《三国》完完整整看完了哈哈哈。当时学习效率并不怎么高,还好LeetCode有个激励机制,每天刷三道新题就能拿积分,所以这段时间也刷了近一百道题吧,同时还把《C++代码整洁规范》啃了一遍,不过现在基本不记得啥了,所以现在我秉持“边学边用”的准则,尽量别让自己走大学本科的老路。本科确实学了挺多的,C/C++,Java,Android,机器学习,Python但是时至今日我对Android还记得的只有Activity的几个生命周期,本科这种错误的学习观念浪费了我太多的时间,但是换个角度安慰自己,这些无用功确实在一定程度上增强了我的自学能力,可能这是大学四年最宝贵的成长了吧,现在我还一直给我刚读大学的表弟灌输这个学习观念让他直接刷算法题,我同学都说我是个魔鬼哈哈哈。
疫情期间有段时间周赛一直掉分,有时候甚至只能做出一道题,很离谱,很是特别难受,尽管每天都还在刷题,然后一个月后又能回到正常状态,然后又开始跌落低谷,如此循环了两三次,后来为了赶上竞赛选手的排名甚至还啃上了《算法竞赛入门经典》,这段时间我估计就处于哲学中的否定之否定、曲折上升阶段。
五月份左右,导师开始给我派发资料,然后开始确定我的研究课题,这段时间回到广东后,也开始上剩下的两门网课以及助教的一门课,其实时间也不多没有每天坚持刷题,主要是打周赛。到了7月份返校后,我开始接触其他的竞赛OJ网站牛客、Codeforce也偶尔打些比赛但是不多,到了9月份力扣秋季赛的时候,个人赛拿到了前100的名次,当时自己也没想到能拿到这么高的名次,顿时信心大增,后来周赛基本都能AK,只可惜团队赛因为当时课题需要出差而没打成。
Alt

修炼

时至今日我觉得自己仍有很大的进步空间,我基友有时候会问我,你花这么多时间在算法上有啥用啊,面试只不过就考些LeetCode简单题和中等题,差不多就行了。但是现在我不再把学习算法当作面经或者学习来看待了,我只觉得这跟我玩游戏差不多,但是这个又比游戏来得正经,完后不会觉得空虚,所谓的高级趣味就是如此吧,我时常会想起《绝命毒师》中老白死前所说的话:“只有我在制毒的时候我才会感觉到我是活着的。”。我挺享受竞赛带来的密集思考和学习新知识带来的兴奋,其实算法竞赛在编程能力给我带来的提升是不少的,最直观的就是能很快就找到代码的bug在哪以及如何避免特殊的测试样例带来的Wrong Answer。LeetCode的每日一题偶尔会随到我之前AC的题,但我也很乐意去再做一遍,然后对比昨天跟今天的我写的代码差别在哪里。今天上次双周赛的竞赛积分刚结算,刚好冲到2000分,上次双周赛也冲到了排行榜第一页(虽然后面被赶上来了呜呜呜)。希望下次写总结的时候能LeetCode冲到2500,Codeforce上2000。
在这里插入图片描述在这里插入图片描述

共勉

横眉冷看生与死,骑者且赶路!与诸君共勉。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值