前綴樹的重要存在價值是搜索速度。通常以空間換時間,時間復雜度為O(n),其中n為樹的深度。
上圖存儲了四個詞:am,bad,be和so,分別位於葉子節點。葉節點壹定是詞,但詞不壹定位於葉節點。除了存儲單詞的節點,其他節點都叫前綴。比如,巴不是樹上的字,卻是壞字的前綴。前綴的重要作用是減少存儲空間。前綴相同的不同單詞只需要存儲差異,大大減少了存儲空間。
我最喜歡的數據結構:
Trie的常見操作:
這個題目真的是不可譯!標題:插入多個單詞(蘋果,app),給每個單詞賦值:蘋果=3,app=2。當輸入前綴ap時,返回以ap為前綴的所有單詞值的總和。
將段落中的所有單詞替換為
存儲在Trie中的單詞
的話
步驟:
步驟:
對給定數組中的兩個項目進行異或運算,找出最大的異或值。
如何判斷壹個數的大小?從高位到低位,不為0的數先最大(1000,0100),如果高位相同,繼續向低位移動(1000,1100)。
想法:
因為存儲的節點只有0和1,所以修改了TrieNode結構。
構造Trie
遍歷以找到最大XOR值
給定矩陣,判斷輸入單詞是否在矩陣中。
想法:
在給定的詞組中,找出兩個能構成回文的詞組。
LeetCode