字典树
Trie树,又称单词查找树或键树,是一种树形结构。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。
他的优点是:最大限度的减少无谓的字符串比较,查询效率比哈希表高。
基本性质:
- 节点本身不存完整单词
- 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串
- 每个节点的所有子节点路径代表的字符都不相同
节点存储额外信息,比如:某个单词出现的频次
核心思想:
Trie树的核心思想是空间换时间
利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的
实战题目:
- 实现Trie树(前缀树) leetcode 208
- 单词搜索 leetcode 212
并查集
适用场景:
组团、配对问题
基本操作:
- makeSet(s): 建立一个新的并查集,其中包含s个单元素集合
- unionSet(x,y): 把元素x和元素y所在的集合合并,要求x和y所在的集合不相交,如果相交则不合并
- find(x): 找到元素x所在的集合的代表,该操作也可以用于判断两个元素是否位于同一个集合,只要将他们各自的代表比较一下就可以了