常见数据结构:
线性:数组,链表,队列,堆栈,块状数组(数组+链表),hash表,双端队列,位图(bitmap)
树:堆(大顶堆,小顶堆),trie树(字母树or字典树),后缀树,后缀数组,二叉排序树/二叉查找顺,B+/B-,AVL树,Treap树,红黑树,splay树,线段树,树状数组
图:图
其他:并查集
常见算法:
(1)基本上思想:枚举,递归,分治,模拟,贪心,动态规划,剪枝,回溯
(2)图算法:深度优先遍历与广度优先遍历,最短路径,最小生成树,拓扑排序
(3)字符串算法:字符串查找,hash算法,KMP算法
(4)排序算法:冒泡,插入,选择,快排,归并,堆排序,桶排序
(5)动态规划:背包问题,最长公共子序列,最优二分检索树
(6)数论问题:素数问题,整数问题,进制转换,同余模运算
(7)排列组合:排列和组合算法
(8)其它:LCA与RMQ问题
线性:数组,链表,队列,堆栈,块状数组(数组+链表),hash表,双端队列,位图(bitmap)
树:堆(大顶堆,小顶堆),trie树(字母树or字典树),后缀树,后缀数组,二叉排序树/二叉查找顺,B+/B-,AVL树,Treap树,红黑树,splay树,线段树,树状数组
图:图
其他:并查集
常见算法:
(1)基本上思想:枚举,递归,分治,模拟,贪心,动态规划,剪枝,回溯
(2)图算法:深度优先遍历与广度优先遍历,最短路径,最小生成树,拓扑排序
(3)字符串算法:字符串查找,hash算法,KMP算法
(4)排序算法:冒泡,插入,选择,快排,归并,堆排序,桶排序
(5)动态规划:背包问题,最长公共子序列,最优二分检索树
(6)数论问题:素数问题,整数问题,进制转换,同余模运算
(7)排列组合:排列和组合算法
(8)其它:LCA与RMQ问题