2024OD机试卷-生成哈夫曼树 (java\python\c++)

题目:生成哈夫曼树

题目描述

给定长度为 n 的无序的数字数组,每个数字代表二叉树的叶子节点的权值,数字数组的值均大于等于1。
请完成一个函数,根据输入的数字数组,生成 哈夫曼树 ,并将哈夫曼树按照中序遍历输出。
为了保证输出的 二叉树中序遍历 结果统一,增加以下限制:
二叉树节点中,左节点权值小于右节点权值,根节点权值为左右节点权值之和。当左右节点权值相同时,左子树高度小于等于右子树高度。

输入描述

例如:由叶子节点:5 15 40 30 10,生成的最优二叉树如下图所示,该树的最短带权路径长度为:40 * 1 + 30 * 2 + 15 * 3 + 5 * 4 + 10 * 4 = 205。

输出描述

输出一个哈夫曼树的 中序遍历 数组,数值间以空格分隔

用例1

输入 5
5 15 40 30 10
输出 40 100 30 60 15 30 5 15 10#### 用例2

java实现
import java.util.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/8596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8s是什么?

url address K8s是一个开源的容器编排平台,可以自动化,在部署,管理和扩展容器化应用过程中涉及的许多手动操作。 Kubernetes最初是由Google工程师作为Borg项目开发和设计的,后于2015年捐赠给云原生计算基金会(CNCF&a…

YOLOv5改进(二)BiFPN替换Neck网络

前言 针对红绿灯轻量化检测,上一节使用MobileNetv3替换了主干网络,本篇将在使用BiFPN替换Neck的方式优化算法~ 往期回顾 YOLOv5改进(一)MobileNetv3替换主干网络 目录 一、BiFPN简介二、改进方法一第一步:在common.…

LeetCode509:斐波那契数(使用动态规划)

题目描述 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1) 1 F(n) F(n - 1) F(n - 2),其中 n > 1…

7.9 证明:$\chi(G-e) = \min \{\chi(G),\chi(G\cdot e) \}$

7.9 证明: χ ( G − e ) min ⁡ { χ ( G ) , χ ( G ⋅ e ) } \chi(G-e) \min \{\chi(G),\chi(G\cdot e) \} χ(G−e)min{χ(G),χ(G⋅e)} 证: 色多项式的递推公式: P k ( G ) P k ( G − e ) − P k ( G ⋅ e ) P_k(G) P_k(G-e)-P_k(G…

D3CTF2024

文章目录 前言notewrite_flag_where【复现】D3BabyEscapePwnShell 前言 本次比赛笔者就做出两道简单题,但队里师傅太快了,所以也没我啥事。然后 WebPwn 那题命令行通了,但是浏览器不会调试,然后就简单记录一下。 note 只开了 N…

封装Springboot基础框架功能-03

在些模块中汇总了一些web开发常用的配置和功能。 模块源码结构 Restful API常用定义 QueryParam请求参数 Data public class QueryParam {private String key;private String value; }RestfulController实现 RestfulController.java,主要汇总一些常用的restful的…

CV每日论文--2024.4.29

1、Make-it-Real: Unleashing Large Multimodal Models Ability for Painting 3D Objects with Realistic Materials 中文标题:实现高仿真3D物体绘制:释放大型多模态模型的能力 简介:物理材料对于增强不同应用场景和光照条件下的3D资产的逼真感至关重要…

4.26.7具有超级令牌采样功能的 Vision Transformer

Vision Transformer在捕获浅层的局部特征时可能会受到高冗余的影响。 在神经网络的早期阶段获得高效且有效的全局上下文建模: ①从超像素的设计中汲取灵感,减少了后续处理中图像基元的数量,并将超级令牌引入到Vision Transformer中。 超像素…

应用软件安全保证措施方案书

系统安全保证措施方案—word原件 软件全套资料进主页获取或者本文末个人名片直接获取。

libhv http client vs cpr

libhv http client 和 cpr 的性能对比 libhv test code static void test_http_async(HttpClient* cli, int seq, int* resp_cnt) {auto req std::make_shared<HttpRequest>();req->method HTTP_GET;req->url "www.baidu.com";req->timeout 1…

html的标签

基础标签 标签描述<h1>-<h6>定义标题&#xff0c;h1最大&#xff0c;h6最小<font>定义文本的字体&#xff0c;字体尺寸&#xff0c;字体颜色<b>定义粗体文本<i>定义斜体文本<u>定义文本下划线<center>定义文本居中<p>定义段落…

windows系统API学习

win代码 1.代码&#xff1a; GetLogicalDriveStrings(1024,(LPWSTR)DStr);解释 DWORD GetLogicalDriveStringsW([in] DWORD nBufferLength,[out] LPWSTR lpBuffer); [in] nBufferLengthTCHAR 中由 lpBuffer 指向的缓冲区的最大大小。 此大小不包括终止 null 字符。 如果此…

Web实时通信的学习之旅:SSE(Server-Sent Events)的技术详解及简单示例演示

文章目录 一、什么是SSE二、SSE技术的基本原理三、SSE适用于场景四、Node服务端示例1、协议2、格式3、事件3.1、事件3.2、事件唯一标识符3.3、重连事件 4、具体示例 五、客户端示例1、检测客户端是否支持SSE2、创建客户端连接3、事件监听4、接收事件5、自定义事件6、错误处理7、…

嘎嘎好用的虚拟键盘第二弹之中文输入法

之前还在为不用研究输入中文而暗自窃喜 这不新需求就来了&#xff08;新需求不会迟到 它只是在路上飞一会儿&#xff09; 找到了个博主分享的代码 是好使的 前端-xyq 已经和原作者申请转载了 感谢~~ 原作者地址&#xff1a;https://www.cnblogs.com/linjiangxian/p/16223681.h…

Alibaba Cloud Linux 安装mysql及注意事项

1.安装mysql #1.运行以下命令&#xff0c;更新YUM源。 sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm#2.&#xff08;可选&#xff09;当操作系统为Alibaba Cloud Linux 3时&#xff0c;执行如下命令&#xff0c;安装MySQL所需的库文件…

java驱动bat脚本执行mysql备份然后自定义mysql备份名

我有个需求按钮触发bat脚本备份mysql,但是怕备份太多找不到最终的&#xff0c;所以可以自定义脚本备份的mysql名称 直接上干货 首先展示java代码 public static void main(String[] args) {// 备份文件名作为参数传入String backupFileName "C:\\Users\\Administrator\…

【Linux进程间通信(六)】深入理解 System V IPC

&#xff08;一&#xff09;引入 &#xff08;二&#xff09;IPC 命名空间 &#xff08;三&#xff09;ipc_ips结构体 &#xff08;四&#xff09;ipc_id_ary结构体 &#xff08;五&#xff09;kern_ipc_perm结构体 &#xff08;六&#xff09;操作系统对IPC资源是如何管理…

视频提取gif怎么制作?试试这个网站一键转换

通过把视频转换成gif动图的操作能够更加方便的在各种平台上分享和传播。相较于视频&#xff0c;gif图片具有较小的文件体积&#xff0c;gif动图能够快速的加载播放&#xff0c;不需要等待就能快速欣赏。很适合从事新媒体之类的小伙伴&#xff0c;可以用来做展示、宣传等。想要实…

刷题训练之模拟

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;熟练掌握模拟算法。 > 毒鸡汤&#xff1a;学习&#xff0c;学习&#xff0c;再学习 ! 学&#xff0c;然后知不足。 > 专栏选自&#xff1a;刷题训…

vue3实现文字垂直滚动

在Vue 3中实现文字的垂直滚动&#xff0c;你可以使用CSS动画或者JavaScript来控制滚动行为。以下是一个简单的Vue 3组件示例&#xff0c;该组件使用CSS的keyframes动画来实现文字的垂直滚动效果&#xff1a; <template> <div class"vertical-scroll-text"&…