例题:47 permutation 2:
input 有重复,有一个i-1的non-visited判断
例题:131,palindrome partition,实际上是个组合问题,可以用组合模板,先判断前面的substring的是不是palidrome,然后对于后面的substring进行dfs。
优化:dp的memorization将已经pali的存起来
例题:44 .1h
- Trie字典树
add and search words
复杂度:O(M)就是最长单词长度,space复杂度:字母表长度*key——length(比如说一个char)*key个数
例题:add and search words
要在对应word的结尾标记一个证明是一个word。
trie是用hashmap实现的
例题:auto-complete system:
例题:word search 2. 212.因为input是字符串,所以可以用trie来节省一部分时间,
回溯的时候要标记回来,visited.true. dfs(),
visited=false
trie:
class TrieNode{TrieNode[] next= new TriNode[26], String word},要标记当前是不是一个word,这就是flag,可以灵活变通,也可以把当前的词存进去