网易首页 > 网易号 > 正文 申请入驻

2024-03-16:用go语言,给你一个正整数数组 nums, 每一次操作中

0
分享至

2024-03-16:用go语言,给你一个正整数数组 nums,

每一次操作中,你可以从 nums 中选择 任意 一个数并将它减小到 恰好 一半。

(注意,在后续操作中你可以对减半过的数继续执行操作)

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

输入:nums = [5,19,8,1]。

输出:3。

答案2024-03-16:

来自左程云。

灵捷3.5

大体步骤如下:

1.定义一个优先队列(PriorityQueue)来存储数组中的数字,优先级为数字的倒数。

2.计算数组中所有数字的和,并将和除以2得到目标值(sum)。

3.初始化操作次数(ans)为0,初始化当前减半的数值之和(minus)为0。

4.循环直到当前减半的数值之和(minus)大于等于目标值(sum):

  • •弹出优先队列中最大的数值(cur)。
  • •将弹出的数值除以2得到新的数值(cur/2)。
  • •将新的数值添加回优先队列中。
  • •更新操作次数(ans)加1。
  • •更新当前减半的数值之和(minus)加上新的数值(cur/2)。

5.返回操作次数(ans)作为结果。

总的时间复杂度为O(nlogn),其中n为数组的长度。堆操作的时间复杂度为O(logn)。

总的额外空间复杂度为O(n),需要额外的优先队列来存储数组中的数字。

Go完整代码如下:

packagemain
import(
"container/heap"
"fmt"
)
typePriorityQueue[]float64
func(pqPriorityQueue)Len()int{
returnlen(pq)
}
func(pqPriorityQueue)Less(i,jint)bool{
returnpq[i]>pq[j]
}
func(pqPriorityQueue)Swap(i,jint){
pq[i],pq[j]=pq[j],pq[i]
}
func(pq*PriorityQueue)Push(xinterface{}){
item:=x.(float64)
*pq=append(*pq,item)
}
func(pq*PriorityQueue)Pop()interface{}{
old:=*pq
n:=len(old)
item:=old[n-1]
*pq=old[0:n-1]
returnitem
}
funchalveArray(nums[]int)int{
pq:=make(PriorityQueue,0)
sum:=0.0
for_,num:=rangenums{
heap.Push(&pq,float64(num))
sum+=float64(num)
}
sum/=2
ans:=0
forminus:=0.0;minuscur:=heap.Pop(&pq).(float64)/2
minus+=cur
heap.Push(&pq,cur)
}
returnans
}
funcmain(){
nums:=[]int{5,19,8,1}
result:=halveArray(nums)
fmt.Println(result)
}



Python完整代码如下:

#-*-coding:utf-8-*-
importheapq
defhalveArray(nums):
pq=[]
sum=0.0
fornuminnums:
heapq.heappush(pq,-float(num))
sum+=float(num)
sum/=2
ans=0
minus=0.0
whileminuscur=-heapq.heappop(pq)/2
minus+=cur
heapq.heappush(pq,-cur)
ans+=1
returnans
nums=[5,19,8,1]
result=halveArray(nums)
print(result)



声明:个人原创,仅供参考

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
堂叔不让父亲的棺木经过门口,我们只能转道,邻居马上拔玉米让路

堂叔不让父亲的棺木经过门口,我们只能转道,邻居马上拔玉米让路

牛锅巴小钒
2024-05-27 19:09:48
广东️女子带娃结婚,不到一年就后悔流泪了:想前夫,但回不去了

广东️女子带娃结婚,不到一年就后悔流泪了:想前夫,但回不去了

夫妻谈资局
2024-05-28 19:49:55
离谱!大衣哥给孙子办满月宴:村民喝400元酒,亲戚喝8699的茅台

离谱!大衣哥给孙子办满月宴:村民喝400元酒,亲戚喝8699的茅台

圈里的甜橙子
2024-05-28 17:17:54
喝茶对心脏到底是好是坏?医生苦劝:4种茶,一口都不要喝

喝茶对心脏到底是好是坏?医生苦劝:4种茶,一口都不要喝

宋若讲故事
2023-01-18 21:38:26
快看!高校体育馆内惊现长发热裤美女裸奔,学生惊恐逃离现场

快看!高校体育馆内惊现长发热裤美女裸奔,学生惊恐逃离现场

新动察plus
2024-05-29 16:00:07
从朝鲜归来,有些大实话不得不讲!

从朝鲜归来,有些大实话不得不讲!

李砍柴
2024-04-21 23:53:00
真相中的真相:民营企业的56789不是贡献,而是原罪?

真相中的真相:民营企业的56789不是贡献,而是原罪?

永不出场的戈多
2024-05-27 06:26:17
真没想到G8388次上海站到上海虹桥高铁列车全程要运行8小时9分钟

真没想到G8388次上海站到上海虹桥高铁列车全程要运行8小时9分钟

十堰钢哥哥
2024-05-29 13:50:55
我敢说她是《庆余年》中女演员最漂亮、气质最好的一位。

我敢说她是《庆余年》中女演员最漂亮、气质最好的一位。

牛叨小史
2024-05-29 10:50:18
婚礼上,伊能静没想着让儿子上台说话,秦昊突然说:你叫他上来吧

婚礼上,伊能静没想着让儿子上台说话,秦昊突然说:你叫他上来吧

秀语千寻
2024-05-28 23:00:28
人民日报:专家集体辟谣,大家别再相信了!

人民日报:专家集体辟谣,大家别再相信了!

华人星光
2024-05-19 10:47:29
蒙古对我们真是不友好

蒙古对我们真是不友好

悠闲葡萄
2024-05-29 15:33:14
36岁陈晓近状曝光帅炸了,顶着光头走红毯,颜值抗打头型超圆润!

36岁陈晓近状曝光帅炸了,顶着光头走红毯,颜值抗打头型超圆润!

小咪侃娱圈
2024-05-29 15:37:09
惊!美军基地遇袭,19死79伤造成巨大爆炸

惊!美军基地遇袭,19死79伤造成巨大爆炸

新点老
2024-05-28 12:27:09
王朔:但凡儒家有道理,中国不会百年积弱,“焚书坑儒”有道理

王朔:但凡儒家有道理,中国不会百年积弱,“焚书坑儒”有道理

铁山学者
2024-05-29 11:05:34
暖心!深圳一老人晨练时心梗被路人用AED救回

暖心!深圳一老人晨练时心梗被路人用AED救回

金羊网
2024-05-29 11:28:07
不续费就无法永久关闭?奥迪回应车机弹窗问题

不续费就无法永久关闭?奥迪回应车机弹窗问题

观察者网
2024-05-27 13:56:07
CBA周琦成功续约,签约金额揭晓,确定引援方向,力争总冠军

CBA周琦成功续约,签约金额揭晓,确定引援方向,力争总冠军

阿牛体育说
2024-05-29 16:53:49
俄神父:一名中国男子据称在乌克兰为俄而战,遭枪击死亡然后复活

俄神父:一名中国男子据称在乌克兰为俄而战,遭枪击死亡然后复活

老马拉车莫少装
2024-05-29 07:25:26
当唐斯13投9中时,你才会发现莱夫利的可怕之处

当唐斯13投9中时,你才会发现莱夫利的可怕之处

篮球大视野
2024-05-29 14:22:02
2024-05-29 18:34:44
moonfdd
moonfdd
福大大架构师每日一题
405文章数 7关注度
往期回顾 全部

科技要闻

王传福再放狠话,燃油车要成“非主流”

头条要闻

安徽全椒县"拿茅台比方污水"局长被免职

头条要闻

安徽全椒县"拿茅台比方污水"局长被免职

体育要闻

巴黎主席向皇马索要8000万 佛爷:1分不给

娱乐要闻

张若昀怎么剧外比剧内更惨兮兮…

财经要闻

东方通收购藏雷 花6亿买来"业绩变脸"

汽车要闻

新哈弗H6苦练内功 向燃油车绝缘智能SAY NO

态度原创

游戏
教育
旅游
亲子
数码

2024年6月有什么游戏值得期待呢?我给大家推荐六款产品

教育要闻

老师骄傲夸夸 男孩字越写越好

旅游要闻

希尔顿一会员退房时被罚3000元,理由令人震惊

亲子要闻

六一儿童汇演能有多搞笑,男孩模仿宋小宝“咖妃”名场面,网友:当代小孩黑历史都是高清的

数码要闻

骁龙X Elite笔记本将支持微软自动超级分辨率 但该功能并非高通SoC机型独有

无障碍浏览 进入关怀版