本文主要是介绍牛客网题目--哈夫曼树,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
关于哈夫曼编码与哈夫曼树的介绍,可以看这个视频
题目链接
以3,4,5,6为例构造哈夫曼树
import java.util.*;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();PriorityQueue<Long> heap = new PriorityQueue<>();while(n-- != 0) {long x = in.nextLong();heap.offer(x);}//构建哈夫曼树long ret = 0;while(heap.size() > 1) {long t1 = heap.poll();long t2 = heap.poll();heap.offer(t1 + t2);ret += t1 + t2;}System.out.print(ret);}
}
这篇关于牛客网题目--哈夫曼树的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!