刷题栏

  |  

摘要: 不同背景的人的刷题方案

【对数据分析、人工智能、金融科技、风控服务感兴趣的同学,欢迎关注我哈,阅读更多原创文章】
我的网站:潮汐朝夕的生活实验室
我的公众号:潮汐朝夕
我的知乎:潮汐朝夕
我的github:FennelDumplings
我的leetcode:FennelDumplings


结合我此前的刷题经验,以及写过的文章,把常见的背景条件下准备面试前的刷题方案记录一下,有需要的同学可以参考。

首先给出一个总览的题目列表,会比较多。之后给出一些常见背景下的刷题方案,建议大家根据自己的情况选用。主要有三套方案:

  • 入门-时间不充裕:刚接触算法,或者简单学过算法但没刷过力扣,但是可供分配的时间不多,例如脱产转行的人、没有刷过题的应届生。希望快速了解,上手刷题,掌握最基础的算法。这套方案以简单题为主,覆盖常见的知识点。
  • 入门-时间充裕:刚接触算法或者没刷过力扣,但是可供分配的时间很多,例如在职转行的人,或者大三研二这样还没面临找工作的在校生。希望在充裕的时间下比较全面深入地掌握力扣中的算法,达到不错的水平。这套方案的题目很多,重点在于把算法知识点和实战技巧梳理全面,把做法相近的题目放到一起强化练习,但是会把偏难繁怪的问题去掉。
  • 有基础-时间不充裕:以前学过算法也刷过题,但是工作后停了一段时间。因为换工作时间比较紧,在有限时间下尽量把一些重难点复习到。这套方案直接聚焦面试中爱问的一题多解和多题一解的题目,高效回忆相关的知识点,并且启发思路。
  • 有基础-时间充裕:在学校或者已经从事相关工作,有算法和刷题的基础,但是没有系统地总结过。没有求职的 Deadline,希望在充足时间下全面梳理力扣的知识点以及典型题目。这套方案的题目很多,重点在于把算法知识点和实战技巧梳理全面,把做法相近的题目放到一起强化练习。并且不回避偏难繁怪的题,扩展思路。

刷题方案1:入门-时间不充裕

从 Leetcode 中精选 200 左右题目,选取的题目以简单题为主,避开偏难繁怪,聚焦面试中最重要的知识点。帮助第一次接触 Leetcode 的同学解决好几千道题中刷哪些题的问题。同时保留了一些面试中经常被问到的经典题目。

链表

递归

遍历

二叉查找树

Trie

栈和队列

哈希表

字符串

数组与矩阵

位运算

双指针

排序

贪心思想

二分查找

分治

241. 为运算表达式设计优先级
95. 不同的二叉搜索树 II

搜索

BFS



DFS





回溯















动态规划

数学


刷题方案2:入门-时间充裕

全面梳理入门到中级的知识点以及对应的题目列表。题目以简单题和中等题为主,困难题较少。

题目 相似题目 备注
94 144、145、589、590、987、1302 -
100 101、104、110、111、572、965 -
102 107、429、872 -
814 669、1325 -
112 113、437 -
129 257 -
236 235 -
297 449 -
508 - -
124 543、687 -
968 337、979 -
105
226

Trie 树

 题号   相似题目  备注            
208
212
211
648
676
677
720
745

二叉查找树

 题号   相似题目  备注            
98 530
700 701
230
99
108
501
450

分治

题目 相似题目 备注
169 -
153 154 -
912 -
315 -

链表

 题号  相似             备注
25
2 445
24
206
141 142
23 21
147
148
707

 题号  相似题目             备注
133 138
200 547、695、733、827、1162
841 1202
207 210、802
399 839、952、990、721、737
785 886、1042
997
433 815、863、1129、1263
684 685、1319
743 787、882、924、1334
847 864、1298
332
1192
943 980、996
959

搜索

 题号  相似题目             备注
17 39、40、77、78、90、216
46 47、784、943、996
22 301
37 51、52
79 212
127 126、752、818
542 675、934
698 93、131、241、282、842
36
515
529

二分查找

 题号  相似题目             备注
35 34、704、981
33 81、153、154、162、852
69
74
875 1011
4
378 668
719 786
367

双指针

 题号  相似题目             备注
11 42
125 455
917 925、986、855
167 15、16
977
992

单调栈/单调队列

 题号  相似题目             备注
901 907、1019
239

动态规划

 题号  相似题目             备注
70 746、1137
303 1218
53 121
62 63、64、120、174、931、1210
85 221、304、1277
198 213、309、740、790、801
279
139 140、818
300 673、1048
96
1105
131 89
72 10、44、97、115、583、712、1187、1143、1092、718
1139
688 576、935
322 377、416、494、1043、1049、1220、1230、1262、1269
813 1278、1335、410
1223
312 664、1024、1039、1140、1130
741
546
943 980、996、1125
32
45
55
76
91
122
123
152
188
518
363
403
552
621
647
714

并查集

 题号  相似题目  备注            
130
200
547

贪心

 题号  相似题目  备注            
455
860
874

位运算

 题号  相似题目  备注            
52
190
191
231
338

刷题方案3:有基础-时间不充裕

一些问题不难但有很多种解法,代码不长,很适合在面试中出。有些题由于问的太多了,大家都研究的很透了因此现在的面试中一般不会问,不过由于题目很经典,思路还是值得学习的。这部分还可以参考文章 【连载】面试好题 以及 适合面试的算法题

一题多解

题目 题解 备注

多题一解

题目 题解 备注

系列问题

题目 题解 备注

刷题方案4:有基础-时间充裕

全面梳理知识点以及对应的题目列表,包括困难的算法和题目。关于知识点的原理学习,参考文章 编程栏,关于题目的题解,参考文章 题解栏


Share