首页 > 代码库 > 初刷LeetCode的感受

初刷LeetCode的感受

  自从上个月进入实验室的云安全项目组后,因为要接触到实际的代码,在实验室博士的建议下我们项目组的硕士开始刷LeetCode练习编程能力,保持每周抽空刷几道算法题。虽然刷的不多,到现在一共只刷了不到30题,但在刷题的过程中还是有很多感触的。

  实验室的博士建议我们按照题目的难易顺序循序渐进由易到难来刷,我也就照做了。因为前段时间在系统地学Python语言,所以我主要用的是Python语言来做,有的题目也采用了C/C++、Java甚至C#多种语言来尝试。在刷题的过程中,总结了自己的一些问题:

  1. 对于数据结构类的题目(例如链表、二叉树等),其实是很简单的题目,但因为很久没有接触数据结构的代码,没有信心去尝试。以后要客服这种畏难的心理,应该在刷题的过程中做到边做边学。

  2. 对于带有字符串或者数组操作的题目,用类C语言尝试总是会遇到困难,也产生了畏难心理,在这方面还要多看看书来加强。

  3. 有的题目乍一看很简单,但用一般的算法很容易超时(特别是对于Python这种执行速度慢的解释型语言),有的题目甚至要求了不能用额外的空间、不能使用循环或者对于时间复杂度有要求(O(n)甚至O(1))。看来还要提高算法优化的水平,同时数学能力也非常重要。

  4. 算法类的题目总体来说还是比较有难度,题目出的也很巧妙,有时候需要进行一番头脑风暴才能有一些头绪,以后还要多刷题保持编程的感觉。

  5. 英文快速阅读水平还要再加强,因为题目都是英文的,有些比较长的题目不太容易看懂。

  针对自己的这些问题,接下来要进行有针对性的补充学习。因为最近临近期末,所以打算利用寒假好好恶补。目前主要是要提高数据结构与算法方面的能力(手上关于算法和数据结构的书太多了),同时还要继续学习Python语言(廖雪峰教程+实际项目)、Linux系统(鸟哥的私房菜+实际操作)以及与项目相关的OpenStack云平台上的开发,再深入地学习Java或者C++其中的一门语言。有机会的话还想接触一下机器学习,手里正好有一本用Python语言写的《机器学习实战》。

  要成为一名合格的程序猿需要学的东西太多,不光是知识的广度,更重要的是深度的积累。未来任重而道远啊!

 

  附上到目前为止所刷过的LeetCode题:

#TitleAcceptanceDifficulty
326Power of Three  39.1%Easy
1Two Sum  29.2%Easy
169Majority Element  44.5%Easy
206Reverse Linked List  43.1%Easy
136Single Number  52.5%Easy
231Power of Two  39.1%Easy
415Add Strings  41.4%Easy
242Valid Anagram  44.5%Easy
441Arranging Coins  36.3%Easy
349Intersection of Two Arrays  45.3%Easy
258Add Digits  50.0%Easy
66Plus One  36.6%Easy
292Nim Game  54.5%Easy
171Excel Sheet Column Number  44.9%Easy
342Power of Four  37.1%Easy
434Number of Segments in a String  40.0%Easy
344Reverse String  57.4%Easy
345Reverse Vowels of a String  37.0%Easy
27Remove Element  36.6%Easy
237Delete Node in a Linked List  45.2%Easy
371Sum of Two Integers  51.5%Easy
13Roman to Integer  43.1%Easy
383Ransom Note  45.8%Easy
9Palindrome Number  33.9%Easy
389Find the Difference  50.2%Easy
412Fizz Buzz  58.1%Easy
283Move Zeroes  47.4%Easy

初刷LeetCode的感受