
前缀树(Trie Tree or Prefix Tree)
文章平均质量分 77
CP Coding
这个作者很懒,什么都没留下…
展开
-
LeetCode 212. Word Search II - 亚马逊高频题8
很容易想到的是从矩阵每个位置出发,利用DFS算法遍历每个字符,遍历过程中从出发字符到当前字符就会形成一个字符序列,判断该字符序列是否是words中的一个单词。从一个字符出发遍历整个矩阵的时间复杂度为O(m x n),每个位置出发都遍历一遍总的时间复杂度就是O((m x n )^2)。看到这种时间复杂度就要想想有没有更优解法。本题属于字符匹配问题,很自然就会想到高效的前缀树(Trie Tree or Prefix Tree)原创 2022-03-18 22:16:43 · 541 阅读 · 0 评论 -
LeetCode 386. Lexicographical Numbers - 前缀树(Trie Tree or Prefix Tree)系列题10
这题看起来不太像可以用前缀树(Trie)来解答,但题目的关键字“字典序lexicographical“”却是前缀树的一个特性,前缀树从根顶点开始从上到下从左到右刚好是按字典序排序的。原创 2021-12-09 12:34:21 · 372 阅读 · 0 评论 -
LeetCode 1268. Search Suggestions System - 前缀树(Trie Tree or Prefix Tree)系列题9
看到这样的题目很自然地想到了前缀树(Trie)。还是以LeetCode 208. Implement Trie (Prefix Tree)为基础。前缀树Trie数据结构定义和单词插入都一样。区别还是查找条件,对于一个单词依次输入一个字母,每次输入一个字母形成该单词的前缀字符串,要求返回前缀树里与该前缀相匹配的3个单词。原创 2021-12-09 03:25:35 · 312 阅读 · 0 评论 -
LeetCode 676. Implement Magic Dictionary - 前缀树(Trie Tree or Prefix Tree)系列题8
又是一道典型的关于前缀树的题,还是LeetCode 208. Implement Trie (Prefix Tree)的拓展。不同的地方是查找的条件不同,给定一个单词必须也只能修改其中一个字母为任意字母,问是否能在字典集里找到修改后的单词?原创 2021-12-08 04:47:06 · 236 阅读 · 0 评论 -
LeetCode 1804. Implement Trie II (Prefix Tree) - 前缀树(Trie Tree or Prefix Tree)系列题7
这题还是标准的前缀树(Trie)题,是LeetCode 208. Implement Trie (Prefix Tree)的拓展。题目要求允许插入重复的单词,查找匹配的单词个数,查找含有指定前缀的单词个数,还有可以从树里擦除一个单词。原创 2021-12-07 23:07:18 · 510 阅读 · 0 评论 -
LeetCode 720. Longest Word in Dictionary - 前缀树(Trie Tree or Prefix Tree)系列题6
看题目就知道是一道关于前缀树(Trie)的题。题目要求在一个单词字典集里找最长的单词,该单词的所有前缀(从第一个字符开始依次增加一个字符)对应字典里的一个单词。也就是说该单词在前缀树里从根节点开始直到单词结束的每个节点都应被标识为完整的单词。原创 2021-12-07 12:48:34 · 122 阅读 · 0 评论 -
LeetCode 211. Design Add and Search Words Data Structure - 前缀树(Trie Tree or Prefix Tree)系列题5
也是一道前缀树(Trie Tree)的上手题,跟LeetCode 208. Implement Trie (Prefix Tree)几乎一样,唯一不同是本题查找的字符串里可能有字符 '.',表示可以匹配任意字符,因此当遇到 '. '时,需要扫描当前节点下的所有子节点(即整棵子树,可以BFS或DFS进行扫描),只要能找到一个匹配的单词即可。原创 2021-12-07 04:35:39 · 431 阅读 · 0 评论 -
LeetCode 692. Top K Frequent Words - 前缀树(Trie Tree or Prefix Tree)系列题4
题目意思是统计一个数组里单词出现的频率,然后再找出k个频率最高的单词。处理一个单词数组可以用前缀树(Trie Tree)数据结构,便于单词的插入和查找。求Top K频率单词可以用优先级队列(Priority Queue)。原创 2021-12-07 01:54:08 · 1878 阅读 · 0 评论 -
LeetCode 139. Word Break - 前缀树(Trie Tree or Prefix Tree)系列题2
有了LeetCode 208. Implement Trie (Prefix Tree)为基础,就可以开始尝试刷LeetCode里前缀树(Trie or Prefix Tree)相关的题。本题涉及到一个字典集以及一个字符串匹配查找,很自然地想到前缀树(Trie or Prefix Tree)。题目问是否可以把一个字符串分割成多个子串,要求每个子串都是字典集里的一个单词。本题如果不考虑时间复杂性问题,那就比较简单。原创 2021-12-06 01:22:39 · 419 阅读 · 0 评论 -
LeetCode 208. Implement Trie (Prefix Tree) - 前缀树(Trie Tree or Prefix Tree)系列题1
前缀树有3个基本性质:根节点不包含字符,除根节点外每一个节点都只包含一个字符; 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串; 每个节点的所有子节点包含的字符都不相同。LeetCode中出现前缀树相关题的频率也比较高,其中208. Implement Trie (Prefix Tree)是前缀树的入门题,也是其他所有可以用前缀树解答的题的基础。原创 2021-12-05 08:04:08 · 292 阅读 · 0 评论 -
LeetCode 140. Word Break II - 前缀树(Trie Tree or Prefix Tree)系列题3
这题是前一题LeetCode 139. Word Break的延续,上一题只是问是否能够分割所以只要找到一种可能就可以立即返回。这题难度加大是因为这题要求找出所有可能的分割方法。虽然难度加大,但用同样也可用前缀树来解决,代码只要在上一题的基础上稍做改动即可。原创 2021-12-06 06:50:25 · 310 阅读 · 0 评论