当前位置: 首页 > news >正文

LeetCode 将数组和减半的最少操作次数

题目地址:https://leetcode.cn/problems/minimum-operations-to-halve-array-sum/description/
给你一个正整数数组 nums 。每一次操作中,你可以从 nums 中选择 任意 一个数并将它减小到 恰好 一半。(注意,在后续操作中你可以对减半过的数继续执行操作)

请你返回将 nums 数组和 至少 减少一半的 最少 操作数。
解题思路:大顶堆
构建大顶堆
把堆顶元素减半,并调整堆,直到数组和减半

func halveArray(nums []int) int {ans := 0var sum float64 = 0size := len(nums)numsFloat := make([]float64, size)for i := 0; i < size; i++ {numsFloat[i] = float64(nums[i])sum += numsFloat[i]}// 构建大顶堆for i := (size - 1) / 2; i >= 0; i-- {heapify(numsFloat, i, size)}// 把堆顶元素减半,并调整堆// 循环此过程,直到 sum 减半halfSum := sum / 2for sum > halfSum {ans++numsFloat[0] = numsFloat[0] / 2sum -= numsFloat[0]heapify(numsFloat, 0, size)}return ans}func heapify(numsFloat []float64, i, size int) {left := i*2 + 1maxChild := leftfor left < size {maxChild = leftif left+1 < size && numsFloat[left+1] > numsFloat[left] {maxChild = left + 1}if numsFloat[maxChild] > numsFloat[i] {swap(numsFloat, maxChild, i)i = maxChildleft = i*2 + 1} else {break}}
}func swap(numsFloat []float64, i, j int) {numsFloat[i], numsFloat[j] = numsFloat[j], numsFloat[i]
}
http://www.dtcms.com/a/485929.html

相关文章:

  • OpenHarmony南向开发环境搭建 - 深入理解Ubuntu、DevEco Device Tool与HPM
  • QT-day1
  • Spec-Kit+Copilot打造AI规格驱动开发
  • Linux服务器编程实践30-TCP交互数据流:Nagle算法与延迟确认的作用
  • MATLAB一个基于Attention-LSTM的分类模型,构建Attention-LSTM深度学习模型,训练模型并进行分类预测
  • 杭州网站建设朗诵面朝网站建设策划内容
  • 手机网站开发模板南昌网站设计建设
  • Playwright中page的实现类深度解析-PageImpl 方法作用解析
  • 【完整源码+数据集+部署教程】 【运动的&足球】足球场上球检测系统源码&数据集全套:改进yolo11-DGCST
  • 无用知识研究:如何用decltype里的逗号表达式判断一个类里面有operator <号,并在编译时优雅给出提示,而不是一大堆不相干的模板信息
  • 人类知识体系分类
  • Java 大视界 -- Java 大数据在智能政务数字身份认证与数据安全共享中的应用
  • 《Foundation 图标参考手册》
  • 从 “坑“ 到 “通“:Spring AOP 通知执行顺序深度解密
  • 博途SCL语言仿真七段数码管
  • 关于网站建设的介绍本地搭建wordpress建站教程
  • 免费网站收录网站推广苏州网站建设推荐q479185700霸屏
  • 【LeetCode热题100(43/100)】验证二叉搜索树
  • 养殖场疫病预警新方案:小吉快检BL-08plus现场快速锁定病原
  • 【ADS-1】【python基础-3】函数封装与面向对象
  • 攻防世界-Web-baby_web
  • SQLite数据库基本操作
  • git创建分支,以及如何管理
  • Netty线程模型与Tomcat线程模型对比分析
  • STEMlab 125-14 Gen 2
  • 如何租用网站服务器寿光营销型网站建设
  • 云手机玩游戏卡顿的原因都有哪些
  • Python Web框架对比与模型部署
  • C# 实现高保真 Excel 转 PDF(无需 Office 环境)
  • cycloneV nios 华邦flash程序固化方案