真的有必要刷题吗?怎么高效刷Leetcode?(完结)




真的有必要刷题吗?怎么高效刷 Leetcode?(完结)
对于喜欢视频的球友,不妨刷一下我在 B 站上上传的《计算机专业如何在寒假刷题》里
面也详细地回答了这三个问题:
• 真的有必要刷题吗?
• 怎么刷题才能高效点?
• 刷题有什么技巧吗?
1647049660828-702b3f2f-473b-4ae2-8764-1794dd652454.png
一、真的有必要刷题吗?
对于参加校招的小伙伴来说,如果想去大厂,算法题可以说是必刷的,毕竟像字节跳动、
腾讯这类一线互联网大厂,确实很喜欢拿算法题来考验应聘者的实力。
对于参加社招的小伙伴来说,面试更看重的是项目经历,但以防万一,刷个 100 道算法
题培养一下手感,锻炼一下解题的思维我觉得也是必要的,总不能其他方面都很优秀,最
后挂在算法题上吧,多亏的慌!
先不管别人怎么说,对于在校的大学生来说,如果时间比较充沛的话,趁早刷题只有好处
没有坏处,就当是打打基础,练练编程思维,保持手感。
但是,一定要看自身情况,招聘要求上的东西你都还没有掌握的话,就盲目的刷题,就真
的很盲目了。
拿哈啰出行的 Java 资深开发工程师来说,任职要求里,红色划线的是重点,这里面并没
有提到算法能力,那么可以很肯定的说,如果这是你的心意岗位的话,把大多数精力投放
到刷题上肯定是很盲目的。
1647079946704-68294f52-576a-4b19-ba5c-aa1e8c8ed0c1.png
那 Boss 直聘的搜索工程师来说,招聘要求里明确提到了扎实的算法功底,那如果这是你
的心仪岗位的话,那不要犹豫了,刷题刷到吐,刷到随随便便一道算法题都能够轻松拿
下,甚至 beat 100%。
1647080204048-b783226f-5dd2-408f-a11b-76b022803f72.png
还是我之前在 Java 程序员如何准备面试里说的,要趁早确定自己的就业方向和岗位,做
到有的放矢。
二、刷题前需要具备哪些入门知识?
1)语言基础
至少选择一门相对熟悉的语言来刷题,推荐 Java/Python/C++/GO,基础的数据结构 比较
完善,刷题的人也比较多,遇到不会的题的时候,也容易找到参考资料。
2)时间复杂度和空间复杂度
需要知道什么是时间/空间复杂度,大 O 是什么意思,常见的复杂度包括哪些?如何来判
断一段程序的复杂度。
B 站上有一个视频,是讲时间复杂度的,推荐看一
下:https://www.bilibili.com/video/BV1nE411x7qP
3)常见的数据结构
• 列表
• 哈希
• 栈
• 队列
• 堆
• 二叉树
• 简单图
4)入门算法
• 递归
• 排序算法
• 二分法
• 宽度优先遍历
• 深度优先遍历
二、怎么刷题才能高效点?
刚开始刷题的时候,每个人都会感到吃力,包括我在内哈。对于刚开始刷题的小伙伴来
说,可能一开始题目都看不太懂,这是很正常的事,平常心看待就行了。
我的心得就是简单粗暴:从易到难,一遍一遍地刷,尽量用自己熟悉的编程语言来刷。
比如说 Java 选手尽量用 Java 来解题,Go 选手尽量用 Go 来解题,C/C++ 选手尽量用 C/C+
+ 来解题,这样刷题的幸福指数也会提升很大一截。
用自己不熟悉的编程语言当然可以刷,但成本就很高,很可能刷着刷着就放弃了。
针对星球用户,二哥也专门开设了 LeetCode 刷题的专栏,在星球上和语雀上都可以查
看,戳:https://t.zsxq.com/6iuzn6I
除此之外,二哥还精心挑选了一些其他编程语言的,有 C/C++ 的,有 go 的。下载方式戳
星球置顶帖,里面有网盘的下载地址。
1647050952979-0f37e7aa-f293-4c0a-9804-57dc7da4f114.png
有了这些刷题笔记,刷题的效率就会有大幅度提升!毕竟大树底下好乘凉嘛。
三、刷题有什么技巧吗?
当然了!千万不要吭哧吭哧地刷,那样会遇到很多阻力。
Tips1:
如果不是天赋异禀,不要怕,一开始就是抄题,先把别人的解题思路照着敲出来。
抄得多了,大脑对代码产生记忆了,再去加深理解,思路就慢慢有了。这虽然是个笨方
法,但管用!
Tips2:
刷的题多了,尽量控制一下刷题的时间,掐个点,不能让自己一直想,一直写下去,如果
半小时没有解出来,就果断放弃,去背别人的答案,不要觉得不好意思。
在我们小的时候,学习就是靠背,语文要背,数学要背,一样的道理,背得熟了,才能在
应用的时候第一时间想得到。
Tips3
一开始不要追求量,非要把所有的题全部刷完才行,光 LeetCode 上就两三千道题,所以
完全没必要全部刷完。
可以按照下面这个类型来刷:
数组-> 链表-> 哈希表->字符串->栈->队列->树->回溯->贪心->动态规划->图
一开始,刷 100 道题就差不多了,国内的刷题网站有 LeetCode、lintcode、牛客等等,大
部分题都是类似的。
我这里给大家总结了 100 道面试高频算法题,涉及到阿里巴巴、字节跳动、腾讯、百
度、美团、Google、Facebook、Microsoft 等大厂,题目类型有二叉树、哈希表、二分
法、宽度优先搜索、深度优先搜索、贪心等。括号中为题号,也可以直接搜关键字去刷。
1647051176645-1001aa54-968f-4406-92ea-6350d75e32d4.png
四、总结
当然,刷题不是万能的,也不要动辄就到 LeetCode 上刷 1000 道算法题,每天连续不断
的刷,题刷多了也会枯燥的。说人话就是没有哪家公司在面试的时候只考察你的数据结构
和算法的,
最重要的是学会举一反三的能力,在面试前保持解题的手感,面试中真遇到了算法题,能
够从容应对。