吃完 300 道 LeetCode 题后,我胖得快炸了!with Java
大家好,我是爱学习爱分享的沉默王二。
不经意间,在 GitHub 上发现了一个 1G 棒的 LeetCode 刷题笔记,重点来了,是纯正的 Java 版。我见过很多牛逼的刷题笔记,有 Go 版的,有 C++ 版的,唯独没有 Java 版的,所以这次,我感觉找到了宝藏!
其实私下里很多小伙伴问我有没有 Java 版的,一开始我觉得刷题嘛,用啥语言刷题根本不重要,重要的是解题的思路。但看到这份 Java 版的刷题笔记后,我明白了,原来使用自己熟悉的编程语言来刷题,真的会提高刷题的幸福指数~
随便打开一道题解感受下,作者真的做到了图文并茂,不只是干巴巴的解题代码。这些手绘图让我感受到了作者的良苦用心,并且很多题都给出了多种解题思路,让我们能从不同的角度去思考,去得出最优解,而最优解,在面试的时候也是加分项。
作者从大一就知道了 LeetCode,但刷题总是三天打鱼两天晒网,隔断时间再去看之前刷过的题总是会想不起来,于是就萌发了刷一道题总结一题的想法。另外一方面,LeetCode 上的一些题解讲解得很少,有些只是简单的丢一些代码,对菜鸟很不友好,于是作者就想借这个机会把自己的各种解题方法都梳理清楚,然后详细地总结出来,也能方便其他小伙伴更好的理解,可谓一举多得。
作者在大一的时候就参加过 ACM 集训,但当时基础太差了,栈和队列都不清楚,所以 ACM 之路也就搁浅了。再准备刷题的时候已经是大四毕业的时候了。
作者在刷前几道题的时候也很慢,很多都没有思路,只能靠别人的解题思路才勉强过关。尤其是第 5 题求最长回文序列,用了好多天才把所有解法都总结了出来。
等到作者刷完 100 道题之后,发现真的是爱上了刷题。基本上后面的每道题都可以想出一种思路,甚至就是最优解,还会萌生一些别人没想到过的解法——哈哈,一种打游戏超神的感觉~
所以呢,我劝大家,不要怕自己基础不好,不要担心自己想不到解题思路,一开始就是借钱嘛,不不不,借鉴嘛,借的多了,自然就不用还了,成自己的了。重要的是开始和坚持。
Q:刷题需要基础吗?
A:对于前 90 道题,只需要了解一门编程语言,知道变量、方法如何定义,if 语句,循环语句,递归。,数组、链表、栈、队列、哈希表就可以了。
Q:按照什么顺序刷题?
A:可以按照题目难度来,一开始多刷 easy 级别的,熟悉一下刷题的流程。如果时间充足的话,可以像作者一样,顺着 LeetCode 上题刷,先培养一些常用的解题思路,然后再慢慢加深巩固。
Q:选哪门编程语言刷?
A:作者的答案也是随便,不用纠结。算法与编程语言之间的关系就好像抄近道和交通工具之间的关系,算法只是用来降低时间复杂度和空间复杂度的。选一门熟悉的编程语言就好。作者选 Java 的主要原因是因为 Java 属于强类型语言,写出来的解题方法会更容易读懂一点。
Q:只刷题就能找到工作吗?
A:答案是显而易见的,我和作者保持同样的观点,只刷题肯定是不够的,还要了解岗位(前端、后端、算法)的相关知识,另外还要做一些练手项目,得有一些实战经验。
如果大家觉得有帮助,记得给作者一个 star 哦 ^ ^
还有,给我点赞和在看哦,分享和整理也是个辛苦活,哈哈 ^ ^