一、何为前缀树?如何生成前缀树?
经典的前缀树:点上没有数据,如果有路就复用,没有路就新建。
前缀树点的结构:
pass:代表这个点经过了多少次,根节点的pass代表有多少个字符串前缀为空,或者一共加了多少个字符串
end:代表这个节点是否是一个字符串的结尾结点,如果是,他是多少个的结尾
构造前缀树的代码:
怎么查询某个字符串加入了几次?
所有加入的字符中,有几个是以pre作为前缀的?
前缀树删除操作:
沿途pass--,最后一个字符end--。
二、贪心算法:经常会利用到堆和排序
贪心算法在笔试时的解题套路:
题目1:![](https://i-blog.csdnimg.cn/blog_migrate/b262f045df14db0b0dadff72d4945ca5.png)
题目2:哈夫曼编码![](https://i-blog.csdnimg.cn/blog_migrate/a8dd356ee44fbeba0952eb242d18414f.png)
题目3:
思路:
三、N皇后问题
常数优化: