【算法题】2208. 将数组和减半的最少操作次数
创始人
2025-05-28 01:49:34
0

题目:

给你一个正整数数组 nums 。每一次操作中,你可以从 nums 中选择 任意 一个数并将它减小到 恰好 一半。(注意,在后续操作中你可以对减半过的数继续执行操作)

请你返回将 nums 数组和 至少 减少一半的 最少 操作数。

示例 1:

输入:nums = [5,19,8,1]
输出:3
解释:初始 nums 的和为 5 + 19 + 8 + 1 = 33 。
以下是将数组和减少至少一半的一种方法:
选择数字 19 并减小为 9.5 。
选择数字 9.5 并减小为 4.75 。
选择数字 8 并减小为 4 。
最终数组为 [5, 4.75, 4, 1] ,和为 5 + 4.75 + 4 + 1 = 14.75 。
nums 的和减小了 33 - 14.75 = 18.25 ,减小的部分超过了初始数组和的一半,18.25 >= 33/2 = 16.5 。
我们需要 3 个操作实现题目要求,所以返回 3 。
可以证明,无法通过少于 3 个操作使数组和减少至少一半。
示例 2:

输入:nums = [3,8,20]
输出:3
解释:初始 nums 的和为 3 + 8 + 20 = 31 。
以下是将数组和减少至少一半的一种方法:
选择数字 20 并减小为 10 。
选择数字 10 并减小为 5 。
选择数字 3 并减小为 1.5 。
最终数组为 [1.5, 8, 5] ,和为 1.5 + 8 + 5 = 14.5 。
nums 的和减小了 31 - 14.5 = 16.5 ,减小的部分超过了初始数组和的一半, 16.5 >= 31/2 = 16.5 。
我们需要 3 个操作实现题目要求,所以返回 3 。
可以证明,无法通过少于 3 个操作使数组和减少至少一半。

提示:

1 <= nums.length <= 10^5
1 <= nums[i] <= 10^7

java代码:

class Solution {public int halveArray(int[] nums) {long sum = 0;double res = 0;double target = 0;int count = 0;PriorityQueue que = new PriorityQueue<>((o1,o2) -> Double.compare(o2, o1));for (int i = 0; i < nums.length; i++) {sum += nums[i];que.add(nums[i] * 1.0);}target = sum * 1.0 / 2;// 比较已减少的数量 与 和的一半while (res < target) {double temp = que.poll();res += temp / 2;que.add(temp / 2);count++;}return count;}
}

相关内容

热门资讯

美妙的声音童话故事 美妙的声音童话故事  下雪的声音下雪的天气很安静,我在静静地倾听。啊,我听见了,听见了,听见了下雪的...
一诺千金的故事   一诺千金,诺言的价值,不是为了让我们去浪费朋友对我们的信任!  杰弗逊有一个很要好的朋友,因为很...
为渊驱鱼,为丛驱雀,为渊驱鱼... 为渊驱鱼,为丛驱雀wèi yuān qū yú,wèi cóng qū què [...
阿拉伯寓言故事《狮子的女儿》 阿拉伯寓言故事《狮子的女儿》  四名奴仆站立着,为靠在王座上睡着的老女王扇风。女王打着鼾,她的膝上卧...
小学二年级语文上册教学计划   逐步养成讲普通话的习惯和愿意与人交流的意识,能认真听别人讲话,听懂主要内容,能主动与别人交谈,讲...
自编童话故事 自编童话故事(精选75篇)  童话故事是指儿童文学的一种体裁,童话中丰富的想象和夸张可以活跃你的思维...
安徒生童话的好词好句好段 关于安徒生童话的好词好句好段大全  一 安徒生童话好词  1 . 绿茵茵:一片葱绿。  2 . 碧澄...
改写《木兰诗》优秀 改写《木兰诗》优秀范文  《木兰诗》叙述了木兰女扮男装替父从军的故事,塑造了木兰这个女英雄形象。千百...
囊萤映雪故事 囊萤映雪故事  囊萤映雪,囊萤:晋代车胤小时家贫,夏天以练囊装萤火虫照明读书;映雪:晋代孙康冬天常利...
腾云驾雾的成语故事 腾云驾雾的成语故事  成语的意思精辟,往往隐含于字面意义之中,不是其构成成分意义的简单相加,下面是Y...
关于长城的故事传说和图片 -... 关于长城的故事 关于长城的故事:孟姜女哭长城 关于...
成语寓言故事《手不释卷》 成语寓言故事《手不释卷》(精选5篇)  寓言故事是含有讽喻或明显教训意义的故事,是文学体裁的一种。它...
孔融让梨的故事50字   孔融让梨的故事告诉我们要像孔融那样,尊老爱幼,我们从小就应该学习他的品德的,孔融让梨的故事50字...
名人读书的小故事_关于名人读... 读书使人充实,讨论使人机智,笔记使人准确。以下是小编为您收集整理提供到的范文,欢迎阅读参考,希望对你...
中国神话故事 中国神话故事  中国神话故事是中国古代人们经过长期的社会实践,在劳动生活的过程中创造出来的一种文学样...
小学二年级一封信教学反思 小学二年级一封信教学反思  《一封信》这是一篇生动有趣的儿童故事。下面是小编整理的小学二年级一封信教...
关于中秋节的故事450字 关于中秋节的故事450字有哪一些呢,小编为大家推荐下文,希望可以帮助到你。欢迎大家阅读参考。篇一:记...
热爱生命的名人故事 关于热爱生命的名人故事  霍金是一个热爱生命的人,关于热爱生命的名人故事。  1963年,霍金21岁...
克雷洛夫寓言故事 克雷洛夫寓言故事《猪》(通用14篇)  寓言故事是含有讽喻或明显教训意义的故事,是文学体裁的一种。它...