初识 LeetCode
写在前面:本文首发于 CSDN,由于本人比较中意 InfoQ 的写作平台,且该系列与 ARTS 相关,故搬运过来,后续关于 ARTS 的内容都会在 InfoQ 中做更新。
以下为原文搬运:
虽然我不是软件开发出身,也没有从事具体的软件开发的工作。但是由于经常看一些软件开发相关的资讯,也多少知道了可以刷算法题的 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 会给出明确的描述和示例,LeetCode 还内置编辑器,该编辑器包含各种编程语言,满足不同开发者的需求。另外,在编码时,你只需要关注算法层面的实现即可,在 LeetCode 的代码编辑器中提供单元测试功能,能让你实时验证算法的正确性。
如果你实在不知道如何解答或者解答完后需要 Review,LeetCode 提供以下选项供你参考:
Related Topics 和 Similar Questions,能让你了解该问题涉及的知识点
Hints,能给你足够的提示去思考
Discuss,能让你与社区进行讨论
Solution,官方提供一种语言的 Solution 来让你参考或对照,其中也有社区贡献的不同语言实现的版本
为什么要刷 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
版权声明: 本文为 InfoQ 作者【Puran】的原创文章。
原文链接:【http://xie.infoq.cn/article/60eb0ed432d41b18a288726db】。文章转载请联系作者。
评论