一丢丢经验
5740
2019.07.09
2019.11.05
发布于 未知归属地

写在前面的话:

大家好, 我是powcai,自己敲了1年LeetCode,想分享自己一点经验,让你们少走一点弯路!还有, 我不是大神, 只是喜欢敲LeetCode的小学生!

首先, 大多人说自己没有编程基础, LeetCode太费力!其实这个完全不用担心, 因为我就是零基础,在敲LeetCode甚至连一门编程语言都没学过(只会一点python)!什么BFSDFS动态规划。。。什么都不懂!LeetCode还是通过我找工作小伙伴知道的, 之后一发不可收拾。所以没有编程基础完全可以刷,但是要掌握一些方法(后面我会介绍)。

其次, 敲LeetCode没用, 还是找不到工作;能不能找到工作我不知道,但是我确确实实从中得到一些好处,把它用于生活中。

  1. 编程能力等于解决问题能力, 长时间编程能力的锻炼, 可以提高解决问题的能力。生活中也会遇到困难, 我总会习惯性去想办法解决, 相信方法总比困难多。
  2. 思维能力, 编程时候我们要把所有可能性想到,会有好多边界情况, 需要考虑极端问题;这个思维也可以用在生活中,我会下意识想到这个问题发展最好情况,最差情况。。。想办法解决各种情况,所以考虑问题会很全面,做起事来游刃有余。
  3. 时间空间, 编程时候我们总是尽可能节省空间, 时间做到一点也不浪费!在生活中, 你也会无意识去思考这些, 让自己更快,更好完成它。如何用空间换时间,用时间换空间?让自己生活飞起来。
  4. 专注能力,现在是娱乐至死的时代,能静下心做的事越来越少。当你做题思考时候,你必须要沉静其中,让心流遍布全身,那种感觉真的很舒服!这种快乐不是那些及时快乐相比的。现在最值钱的不是时间,不是金钱,而是你的专注力。资本剥削就是剥削你的专注力...反正专注能力很重要,值得锻炼。
  5. 还是,很多很多。。。

最后,还要人说LeetCode太难了, 自己太笨做不了。 天赋决定上限,努力决定下限。先努力做到目前你能做到的最好,然后再说不行。 要相信一万小时定律,傻子都能成为天才。我们先试一试->不行->再坚持一下->不行->再坚持一下->不行->放弃!做点其他想做的事,人生其实就是在不断的尝试,才能找到自己想走的路。开心才是最重要的,改变世界就是那几个人,大多数人渺小到可有可无,我们能做到就是让自己开心,让自己生活有意义!

好了, 下面介绍我敲LeetCode方法,大家可以借鉴。

我采取的方法

  1. 快刀斩乱码

  2. 慢工出细活

  3. 坚持

第一步, 快刀斩乱码

就是一个字, 一开始刷的时候, 不知道有哪些算法?我们可以按照LeetCode标签每种类型做个几题。一开始不知道怎么做,没事!思考十分钟, 想不出来直接看别人代码, 把它的逻辑搞清楚。然后自己手敲一遍(不看他人代码, 自己想逻辑)。这个很关键!不去思考,看着别人代码敲, 只能练手速, 该不会还是不会!

我们迅速把各种题型过一遍,做到心里有数。

第二步, 慢工出细活

就是一个字**慢,**对于一个问题, 我们考虑它的各种解法,去总结, 发现其中规律

第三, 最重要坚持

我当时刷LeetCode,每天两题,一开始需要4,5个小时,随着你每天练习,时间慢慢变短,而且肉眼感受到自己的进步!很有成就感!人只所以坚持, 是他认为有意义, 把敲LeetCode赋予重大意义, 每个人都可以!

再写一点建议,

我们不是天才, 真的有些大神周赛 10分钟就敲出来了, 我认识一个大神(周赛前几名),他认为LeetCode都是水题,可能一辈子我也达到不了这种水平, 但是每天让自己大脑处于思考情况, 做事逻辑清楚,还有它给我带来内心平静,感觉世界很静,自己很舒服!其实就够了!

我们在敲的时候,养成一些好习惯。我们毕竟不是acmer, 不需要刻意追求速度, 养成见名知意变量命名习惯;养成写注释的习惯;养成估算自己算法时间复杂度,空间复杂度(我还要锻炼)习惯;。。。。别看这些一开始很难, 当你养成习惯了,以后都是无脑事情,一点也不累!

真的希望大家, 不是为了面试而找敲算法,而是培养自己喜欢思考的习惯!让自己一直处于进步状态!算法不仅仅只属于计算机,生活中处处都能看到, 你玩的拼图游戏(DFS)。。。都是算法.

其实还有很多, 想到再写!

谢谢大家, 让我们一起爱上算法, 爱上LeetCode。做快乐的事, 让自己更快乐!我发现真正牛逼的人, 不是有多努力,多拼搏,而是发自内心的喜欢!

评论 (22)