题解 | #哈夫曼树#

哈夫曼树

https://www.nowcoder.com/practice/162753046d5f47c7aac01a5b2fcda155

/*本题与搬水果题异曲同工,均利用小顶堆实现*/

#include <iostream>
#include <queue>
using namespace std;
int main(){
    priority_queue< int , vector<int> , greater<int> > min_heap;
    int n=0;
    int weight=0;
    int res=0;
    int first=0,second=0;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>weight;
        min_heap.push(weight);
    }
    while(min_heap.size()!=1){
        first=min_heap.top();
        min_heap.pop();
        second=min_heap.top();
        min_heap.pop();
        res+=(first+second);
        min_heap.push(first+second);
    }
    cout<<res<<endl;
    return 0;
}
关于哈夫曼树:详见王道机试P168


全部评论

相关推荐

11-28 17:48
中山大学 C++
点赞 评论 收藏
分享
10-30 23:23
已编辑
中山大学 Web前端
去B座二楼砸水泥地:这无论是个人素质还是专业素质都👇拉满了吧
点赞 评论 收藏
分享
一颗宏心:华为HR晚上过了十二点后还给我法消息。
点赞 评论 收藏
分享
11-28 17:58
门头沟学院 Java
美团 JAVA开发 n×15.5
牛客786276759号:百度现在晋升很难的 而且云这块的业务没美团好 你看百度股价都跌成啥样了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务