文章目录

首先自我介绍一下,本科非计算机专业,非 985/211。从 2018 年 8 月份开始正式接触算法,从 LeetCode 入的门。当时的 LeetCode 还是只有美服版本,记得国服是在 2018 年底才开始运营起来的。

当时的算法水平可谓小白,基本上是零基础。当时,就硬性地按频率顺序刷。频率只有会员才能看到,所以当时花了 800 左右的 RMB 买了美服的会员。磕磕绊绊刷到 2020 年初,也刷了 500 道题目吧。当时的竞赛水平很差,只有在极少数的情况下能够在规定的 1 个半小时内 AC 四道题目。

2020 年我开始讲究了一些方法和策略,开始系统性地学习算法。同时,在刷题之后,进行深入的思考。在经过不断地可以练习之后,LeetCode 的竞赛题目可以在不是很难的情况下 AC 四道题目,而且还能剩下一些时间提前完成。

胡小旭 LeetCode Rank
胡小旭 LeetCode Rank

下面是我 LeetCode 的 rank,那么我就来谈谈,我是如何完成这一步的。

输入(Input)

首先,我觉得需要系统性地学习。如果,基础比较差甚至零基础,那么最好不要直接上手 LeetCode。所以,我觉得我在起初刷的 500 道题目的效率是非常糟糕的。因为,在 LeetCode 尽管按照分类刷,也是需要自己有很强地独立思考的能力,需要自己梳理并建立完整的体系,并思考背后的技巧。而这些事情,是一本较好的书籍直接可以提供给我们的。所以,一本好的书籍,进行系统地学习是比较高效且合理的方式。

同时,刷 LeetCode 的题目作为平时练习,其难度是和其竞赛题目同等的。所以,在参与竞赛时还是显得吃力。如果,通过书籍做一些拔高练习,那么效果会好一些。

对于,书籍的推荐有《算法竞赛入门经典2》《信息学奥赛一本通》。这两本书籍也是我目前正在集中学习与刷题的必备法宝。希望能够在 2021 年完成大部分的题目,并做一些总结性的思考。

输出(Output)

其次,配合 LeetCode 进行练习。此时,在系统性的练习与学习之后,在刷 LeetCode 的题目时就显得格外轻松。偶尔,还会有一种融会贯通的感觉。会发现,有些问题居然可以以这种角度进行思考,有些知识点居然可以解决这些问题。

当然,只是刷 LeetCode 固然非常的枯燥。所以,我也建议同时刷不同的 OJ。一个可以提高学习新鲜感,保持兴趣,二个可以让自己熟悉不同的 OJ,拓展视野,提高自己的适应能力。有时,刷久了一个 OJ,突然刷另一个真的会有一种“不知所措”的感觉。

那么,对于 OJ 我有这些推荐如下推荐:

如果,还有精力的话可以尝试 CodeForces。同时,还有一些企业的竞赛,比如谷歌的 Kick Start 和 脸书的 Hacker Cup

最后

希望在 2021 年的系统性练习中,能够达到 LeetCode 竞赛的前 2.5%(排名) AtCoder 竞赛的 10%。大家一起加油吧~

最后,如果有志同道合的朋友一起学习算法,可以联系我(+v genialx 暗号:2000)。

胡小旭
2021 年 01 月 19 日 于北京

Share:

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.