初识LeetCode

虽然我不是软件开发出身,也没有从事具体的软件开发的工作。但是由于经常看一些软件开发相关的资讯,也多少知道了可以刷算法题的LeetCode的存在。
最近,看到极客时间推出的一档《左耳听风 | ARTS 打卡召集令》活动,便开始去了解和接触啦。

什么是LeetCode

LeetCode是一个OJ(Online Judge)平台,收集了许多互联网公司的面试题目,主要以算法题为主,是目前较为流行的刷题平台。这是LeetCode的官网介绍:

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

LeetCode目前也有中文社区,其中文名叫做「力扣」,直译的有点生硬。不管是否有LeetCode原站账号,都需要绑定手机号。
力扣
LeetCode网站的模块现在比较丰富,除了常用的「题库」模块,还有探索、挑战、讨论等。
LeetCode会将「题库」进行分类,包括算法、数据库等。对每一个题目,有难易程度、分类更为详细的Tag、是否有现成的Solution以及是属于哪些公司的真实面试题目(付费选项)。当前,共有1458个题目。
初识LeetCode_第1张图片
对「题库」,LeetCode会给出明确的描述和示例,LeetCode还内置编辑器,该编辑器包含各种编程语言,满足不同开发者的需求。另外,在编码时,你只需要关注算法层面的实现即可,在LeetCode的代码编辑器中提供单元测试功能,能让你实时验证算法的正确性。
初识LeetCode_第2张图片
如果你实在不知道如何解答或者解答完后需要Review,LeetCode提供以下选项供你参考:

  1. Related Topics和Similar Questions,能让你了解该问题涉及的知识点
  2. Hints,能给你足够的提示去思考
  3. Discuss,能让你与社区进行讨论
  4. Solution,官方提供一种语言的Solution来让你参考或对照,其中也有社区贡献的不同语言实现的版本

初识LeetCode_第3张图片

为什么要刷LeetCode

从整体上,LeetCode提供的题目质量都比较高、也很好的社区,通过大量的练习,可以在思考和训练中,不断的锻炼和提高我们对计算机基础知识的理解和解决问题的思维能力。

对我而言,这可以作为我当前所学知识的一个实际的应用。通过实际的编程训练,来学习和提高对编码的熟练度和转化问题的思维能力。由于问题都包含难易度、且有大量的社区讨论和现成的Solution,对我这样的编程小白来说,是比较友好的。

我当前的策略是,从易到难,以龟速的方式来做LeetCode中的算法题,选用Python和C#这两种编程语言来分别实现。

关于更多详细的LeetCode的解读,可以参考SelfBot的博文 LeetCode 刷题指南(一):为什么要刷题,有较为全面的分析。

LeetCode的参考

LeetCode是一个有较长历史,且口碑较好的平台,目前也有很多关于LeetCode的资料,其中有些是对题库的解读,有些是经验的分享,这里列出来作为一个参考:

  • LeetCode题解全记录:https://github.com/azl397985856/leetcode
  • 用动画的形式呈现解LeetCode题目的思路:https://github.com/MisterBooo/LeetCodeAnimation
  • https://medium.com/@haren/leetcode刷題新手先備與相關知識分享-681328997c86
  • 刷 LeetCode 吃力正常吗? - 知乎

你可能感兴趣的:(工具,算法)