Table of contents Data structures and Algorithms 时间复杂度分析 最好、最坏、平均、均摊时间复杂度 空间复杂度分析 刷题 动态规划解题套路框架 回溯算法解题套路框架 线性表 基本概念 线性表 常见算法 盛最多水的容器 移动零 爬楼梯 两数之和 三数之和 删除排序数组中的重复项 旋转数组 合并两个有序数组 加一 链表 带头结点单链表 不带头结点单链表 常见算法 反转链表 两两交换链表中的节点 复杂链表的复制 删除链表的倒数第N个节点 合并两个有序链表 合并K个排序链表 环形链表 环形链表 II K个一组翻转链表 栈和队列 栈 顺序栈 链栈 常见算法 有效的括号 最小栈 栈的应用 栈在函数调用中的应用 栈在表达式求值中的应用 栈在括号匹配中的应用 实现浏览器的前进、后退功能 队列 顺序队 链队 队列的应用 阻塞队列和并发队列 双端队列 递归 基本概念 递归树 串 串基本概念 数组、矩阵与广义表 基本概念 树 基本概念 存储结构 二叉树 主要性质 存储结构 遍历算法 常见算法 求树的深度 二叉树的镜像 对称的二叉树 二叉搜索树的第k大节点 从上倒下打印二叉树/层次遍历 重建二叉树 树的子结构 二叉树中和为某一值的路径 树与森林 树转换为二叉树 二叉树转换为树 森林转换为二叉树 二叉树转换为森林 树的遍历 森林的遍历 二叉排序树 平衡二叉树 常见算法 平衡二叉树 平衡二叉查找树 线索二叉树 红黑树 赫夫曼树与赫夫曼编码 图 基本概念 图的遍历 图的应用 排序 基本概念 比较类排序 冒泡排序 快速排序 插入排序 希尔排序 选择排序 堆排序 归并排序 非比较排序 计数排序 桶排序 基数排序 堆排序 优先级队列 堆的应用 实现一个通用的、高性能的排序函数 查找 基本概念 二分查找 跳表 散列表 B树与B+树 算法 回溯算法 并查集 quick-find quick-union 加权quick-union 路径压缩的quick-union 加密算法 哈希算法 数字摘要 加密算法 MD5 参考文献 推荐资源