算法程序设计主要分为以下几种(并举例几个比较重要的难点)[力扣]
1. 数据结构
1.1 数组 (单双向链表,跳舞链)
1.2 堆,队列,栈 (大小堆,可并堆)
1.3 树和图 (构建哈夫曼树,最近公共祖先,并查集)
1.4 集
1.5 哈希,映射
1.6 字符串 (字典树,后缀树)
2. 算法
2.1 时间复杂度
2.2 搜索 (回溯,递归,剪枝技巧)
2.3 排序 (快速排序,归并排序,计数排序)
2.4 图 (最短路,最小生成树,网络流建模)(DFS/BFS)
3. 动态规划 (背包问题,最长子序列,计数问题,路线条数)
4. 数学 & 位运算
4.1 概率
4.2 平方
4.3 阶乘
4.4 整除 / mod
5. 基础技巧
5.1 分治
5.2 倍增
5.3 二分
5.4 贪心
6. 模拟实现
其中算法与数据结构是重点