索引:
- 链表
- 栈队列
- 散列表
- 树
链表
知识点
- 链表的顺序表示及其基本操作实现
- 单链表表示及其基本操作实现
- 双链表...实现
- 循环链表...实现
经典题
- 判断链表是否有环
- 反转链表
- 两个有序链表合并
- 求链表中间节点
- 删除倒数第n个节点
- 两个单链表的公共节点
leetcode建议练习题号:
业界应用
- 如何实现LRU缓存淘汰算法
栈、队列
知识点 栈 队列 双端队列 优先队列:堆结构的实现
经典题
- 括号匹配
- 表达式求值(中缀表达式转后缀表达式)
- 队列-层次遍历
- 栈实现队列、队列实现栈
- 双端队列-返回滑动窗口的最大值
- 小顶堆-返回数据流的第k大元素
leetcode建议练习题号:
业界应用
- 如何实现浏览器的前进后退功能
散列表即键值对的集合,js里常用{ }、new Map()表示
知识点
- 散列函数与散列表
- 处理冲突的方法
- 开放地址法
- 拉链法
- js里的Map、WeakMap
经典题
- 有效字母异位词
- two sum
- three sum
leetcode建议练习题号:
业界应用
- 哈希算法应用:安全加密、数据校验、唯一标识、散列函数
- 哈希算法在分布式系统的应用:
- 打造工业级水平的散列表
- 散列表应用-布隆过滤器
- 散列表应用思考
- word的单词拼写检查功能
- 将10万条URL访问日志的数据按照访问次数排序
- 两个字符串数组,每个数组10万条字符串,如何快速找出两个数组中相同的字符串
树
知识点
- 树的基本概念(度、高度、完全二叉、满二叉)
- 树的遍历(前序、后序、中序、层序)、根据遍历序列建树
- 二叉搜索树BST
- 并查集
- 平衡二叉树AVL
- 线段树
- 树状数组
- 哈夫曼树及其编码
经典题
- 翻转二叉树
- 二叉树的最大深度
- 查找二叉搜索树的某个节点的前驱、后继节点
- 验证二叉搜索树
- 路径总和
leetcode建议练习题号:
业界应用
堆
知识点 构建大顶堆、小顶堆
经典题
- 堆排序
- 实时数据流的第k大元素
- 合并k个有序链表
leetcode建议练习题号:
业界应用
递归与分治
知识点
经典题
leetcode建议练习题号:
业界应用
深度优先搜索、广度优先搜索
知识点
经典题
- 二叉树的层序遍历
- 二叉树的最大深度、最小深度
- 生成有效的括号组合
leetcode建议练习题号:
业界应用