贪心--huffman树
1 达达决定把所有的果子合成一堆。
2
3 每一次合并,达达可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。
4
5 可以看出,所有的果子经过 n−1 次合并之后,就只剩下一堆了。
6
7 达达在合并果子时总共消耗的体力等于每次合并所耗体力之和。
在符合这样一个选择合并规则后,我们可以发现其每一次选择都可以生成一颗二叉树;
huffman树就是这样一个规则:
我们将每一个叶节点作为最初始的选择,然后挑选其中最小的两个点进行合并,得到的点加入树(集合),如此合并花费的代价最小: