灵神的刷题指南

分享|如何科学刷题? - 力扣(LeetCode)

科学刷题 灵茶山艾府

合理运用心流通道,科学刷题,快乐刷题!

前言

怎么刷算法题?按照什么顺序刷题?如何科学地刷题训练?

如果你刚接触力扣,还不熟悉基本编程语法常用库函数,推荐刷力扣官方的入门题单

有了一些简单题的积累,就可以开始刷我的题单啦~

训练方法 A

要点:

  • 按照专题刷题。同一个专题下的题目,套路是一样的,刷题效率杠杠滴~
  • 从易到难,量力而行。题目已经按照难度分整理好了,按照顺序刷就行~

推荐先刷【滑动窗口】和【二分】题单,这是两个最基础的算法,套路也较为固定,刷题过程中还可以学到一些做题技巧。其他题单可以按照自己的兴趣选择。

请结合【基础算法精讲】学习。

推荐安装 这个插件,可以在题单中自动标记做过的题目。

  1. 滑动窗口与双指针(定长/不定长/单序列/双序列/三指针)
  2. 二分算法(二分答案/最小化最大值/最大化最小值/第K小)
  3. 单调栈(基础/矩形面积/贡献法/最小字典序)
  4. 网格图(DFS/BFS/综合应用)
  5. 位运算(基础/性质/拆位/试填/恒等式/思维)
  6. 图论算法(DFS/BFS/拓扑排序/最短路/最小生成树/二分图/基环树/欧拉路径)
  7. 动态规划(入门/背包/状态机/划分/区间/状压/数位/数据结构优化/树形/博弈/概率期望)
  8. 常用数据结构(前缀和/差分/栈/队列/堆/字典树/并查集/树状数组/线段树)
  9. 数学算法(数论/组合/概率期望/博弈/计算几何/随机算法)
  10. 贪心与思维(基本贪心策略/反悔/区间/字典序/数学/思维/脑筋急转弯/构造)
  11. 链表、二叉树与一般树(前后指针/快慢指针/DFS/BFS/直径/LCA)
  12. 字符串(KMP/Z函数/Manacher/字符串哈希/AC自动机/后缀数组/子序列自动机)

对于动态规划,至少要做 100100 道才算入门。

优点:突击训练特定知识点,可以掌握常用算法套路。按照题单专题刷,一个套路可以解决多个题目,刷题效率高。此外,做同一个专题下的题目,相当于在从不同的角度去观察、思考同一个算法,这能让你更加深刻地理解算法的本质

缺点:提前知道题目类型,跳过了一些思考步骤。但比赛/笔试是不会告诉你这题是什么类型的,把 DP 想成贪心的大有人在。可以结合下面的训练方法,锻炼自己判断题目类型的能力。

训练方法 B

随机刷题,注意控制难度范围,太简单和太难的题目都不能让你进入「心流通道」。

  1. 打开 难度练习
  2. 在设置中关闭算法标签
  3. 选择适合自己的难度范围,开刷!

优点:做题时不知道题目类型,可以训练实战能力。

缺点:知识点有些零散,适合已经掌握常用算法的同学查漏补缺,检验自己的学习成果。

训练方法 C

如果时间很少,可以突击训练 HOT 100

如果你有任何疑问或者建议,欢迎在下方评论。