LeetCode刷题之旅正式开始

版权声明:如需转载,请与我联系。WX:reborn0502 https://blog.csdn.net/gaifuxi9518/article/details/84871829

开学三个多月了,但没写过多少代码,感觉再这样下去就废了。所以今天开始LeetCode刷题。这篇文章算是一个刷题的开端,主要写写为什么选择leetcode刷题,怎样刷题等问题。

1.为什么刷题?

我觉得要想成为一名合格的程序员需要具备这么几块能力:

  • 计算机基础知识:主要包括计算机专业本科学的一些课程,如《计算机网络》,《计算机组成原理》,《操作系统》,《数据库原理》等;
  • 良好的数据结构和算法能力;
  • 编程能力:也就是对编程语言的熟练度,比如python,java,c++等;
  • 其他工具的使用:比如Linux和Mysql等数据库;
  • 数学能力:包括微积分,概率论与数理统计,线性代数等。
  • 专业领域知识:机器学习,深度学习等。

刷题能让我锻炼以上能力中的数据结构和算法的能力以及编程能力。因为leetcode中的题目需要用编程语言,比如python,java,c++等来实现,但高效快速的解决问题的方法、步骤则需要数据结构和算法的支撑。因此,刷题对我这两方面能力的提升显而易见。

2.怎样刷题?

首先,想要正确编写代码并成功提交需要熟练使用一门编程语言,我主要学习的是python,在使用python解决问题的时候,我肯定会用到一些我没有用过的方法,函数。当遇到比较好的函数的时候,我会把它记录下来,然后将这个函数相关的知识点和使用方法整理成一篇博文记录下来,以备后续的复习巩固。

其次,在代码提交运行的时候,肯定会遇到各种各样的错误提示,这些错误可能是语法错误,可能是逻辑错误。但不管遇到了什么错误,都是一次栽跟头的经历,我要做的是,将这些错误出现的原因,解决方法整理成一篇博文,这样一来,吃一堑长一智,栽跟头栽的多了,以后就能避开这些让你栽跟头的坑!

再次,当你提交之后,系统会给你一个反馈,这个反馈可能是程序出错的提示,也可能是时间超出限制的提醒。如果是前者,那么找到错误并改正就好了,如果是后者就比较尴尬了,这说明你编写的代码运行效率太低了。这时你就需要重新考虑你代码的逻辑。那怎样能写出比较高效的程序呢?没错,数据结构和算法。

当某题需要用到某个数据结构和算法的知识时,我就将相关的知识点学一遍,然后将学习到的内容整理成博文。此时的学习就能够将理论与实践相结合了,Nice!

3.刷前须知

如果按照上述刷题的方法进行的话,进度会非常非常慢,因为我要做的不仅仅在leetcode刷完一个又一个的题而已,我要做的是通过刷题这种方式来学习编程和数据结构及算法的知识,而且最重要的是,学完之后我要整理到我的博客上。

也就是说,完完整整的刷完一个题我需要经历三个步骤,耗费三个阶段的时间。第一,做题的时间;第二,当不会做的时候,去学习记录的时间;第三,整理成博文的时间。在这三块时间里,第一块和第三块时间是一个输出的过程,第二块时间是一个输入的过程。输入与输出相结合,理论与实践相结合会达到一个比较好的学习效果。

4.软件与工具

  • LeetCode官网:线上做题,提交。
  • Pycharm:线下测试,运行。
  • 笔神:用于知识点内容的记录。
  • Xmind:用于知识点框架的记录。
  • Google:知识点,问题检索。
  • www.eastnotes.com:我的博客,用于博文整理。

猜你喜欢

转载自blog.csdn.net/gaifuxi9518/article/details/84871829
今日推荐