打算写这个系列很久了,看到网上那些大牛一个个都写了很多总结和知识点讲解,逐渐明白自己的不足主要就是在基本功上。很多算法和思路需要重新梳理才能更好的掌握和运用,正好集训还有一个月时间,够自己慢慢的把这些东西梳理完。
在我的认知中,算法分为这几大类:
- 搜索
- 贪心算法
- 数据结构
- 动态规划
- 模拟
- 图论
- 数论
- 几何问题
1.搜索
搜索有很多种方法可供学习和使用,常用的有:
-
- 宽度优先搜索(BFS)
- 深度优先搜索(DFS)
- 启发式搜索
- 记忆化搜索
这几种搜索方式各有千秋,其中DFS和BFS是很多算法的基础和核心,也就需要将其烂熟于胸。这里先不过多介绍,会单开一篇文章讲这些。
2.贪心算法
贪心算法也有三种公式性质的知识点:
-
- 区间选点问题
- 区间覆盖问题
- 选择不相交区间问题
可以说大多数的贪心问题都可以转化为这三种问题中的一个进行求解。贪心算法重在策略,这也是贪心和动态规划不好掌握的原因之一,每道题都可能有变化,死记硬背之类的学习方式是万万不可取的。