科大讯飞笔试

1、由序列1,2,4,5,6构成的哈夫曼树是

之前没听过这个哈夫曼树,结束了狠狠补习一下。发现这个做出来还是不难的,

初始的每个节点值构成的序列进行排序,选出值最小的两个节点相加,此时这两个值从序列中退出

新产生的值加入到序列中,组成新的序列。重复以上过程。

得到

18

/ \

7 11

/ \ /\

3 4 5 6

/ \

1 2

2、求给出的哈夫曼树的带权路径长度

哈夫曼树的带权路径长度是树中所有叶子节点的带权路径长度之和。

叶子节点的带权路径长度是从根节点到叶子节点的路径长度(即经过的边数)乘以该叶子节点的权值

以上面第一题为例:1*3+2*3+4*2+5*2+6*2 = 39.

3、将数组构造成堆后,堆对应的先序遍历序列可能是:

堆是一个完全二叉树:完全二叉树有很好的性质,每个节点i 父亲节点是i/2,左子节点 2i ,右子节点 2i+1

以小顶堆为例,小顶堆满足每个父亲节点的值都小于或等于子节点的值,其根节点最小。

每次插入元素都将新元素插入到堆的末尾,然后进行上浮,使新元素移动到正确位置,保持堆的性质。

4、编程

//任何一个数n都能拆成若干项不同的、由2的次幂和3的次幂相乘之和。

//输入 给定一个整数n

//输出 先输出项数m,再输出m个不同的整数,从大到小输出。

思路:用一个二重循环把20次方以内的2的幂次和3的幂次乘积,存到一个数组a里(当乘积大于输入时可break)

用sort将数组a从大到小排序,然后从数组a里从大到小挑数挨个匹配,如果数组a里的数小于等于输入n,就将数组a中的数存入答案数组中,并用n减去数组a中的数,继续匹配,直到n等于0break。(hhh)

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 12:31
以前小时候我最痛恨出轨、偷情的人,无论男女,为什么会出轨?现在我成了自己最讨厌的人,没想到分享的东西在牛客会被这么多人看,大家的评价都很中肯,我也认同,想过一一回复,但我还是收声了,我想我应该说说这件事,这件事一直压在我心里,是个很大的心结,上面说了人为什么出轨,我大概能明白了。我们大一下半年开始恋爱,开始恋爱,我给出了我铭记3年的承诺,我对她好一辈子,我永远不会背叛,我责任心太重,我觉得跟了我,我就要照顾她一辈子,我们在一起3年我都没有碰过她,她说往东我就往东,她说什么我做什么,她要我干什么,我就干什么!在学校很美好,中途也出过一些小插曲,比如男闺蜜、男闺蜜2号等等等。但我都强迫她改掉了,我...
牛客刘北:两个缺爱的人是没有办法好好在一起的,但世界上哪有什么是非对错?你后悔你们在一起了,但是刚刚在一起的美好也是真的呀,因为其他人的出现,你开始想要了最开始的自己,你的确对不起自己,21岁的你望高物远,你完全可以不谈恋爱,去过你想要的生活,你向往自由,在一起之后,你要想的不是一个人,而是两个人,你不是变心了,就像你说的,你受够了,你不想包容了,冷静几天是你最优的选择,爱人先爱己。
社会教会你的第一课
点赞 评论 收藏
分享
牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务