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

【贪心算法】将数组和减半的最小操作数

1.题目解析

2208. 将数组和减半的最少操作次数 - 力扣(LeetCode)

2.讲解算法原理

 使用当前数组中最大的数将它减半,,直到数组和减小到一半为止,从而快速达到目的

重点是找到最大数,可以采用大根堆快速达到目的

3.代码

class Solution {
    public int halveArray(int[] nums) {
        PriorityQueue<Double> heap=new PriorityQueue<>((a,b)->b.compareTo(a));//创建大根堆
        double sum=0;
        for(int x:nums){
            heap.offer((double)x);
            sum+=x;
        }
        int count=0;
        sum/=2.0;
        while(sum>0){
            double tmp=heap.poll()/2.0;
            sum-=tmp;
            count++;
            heap.offer(tmp);
        }
        return count;
    }
}

4.证明

证明方法:交换论证法

相关文章:

  • 利用paddleocr解决图片旋转问题
  • CI/CD—Jenkins cron定时任务表达式
  • 硬件基础(4):(5)设置ADC电压采集中MCU的参考电压
  • numpy广播性质
  • 激光雷达目标探测顶刊简介2025.3.11
  • 【医院内部控制专题】7.医院内部控制环境要素剖析(三):人力资源政策
  • 海康线扫相机平场矫正教程
  • 快速学习Bootstrap前端框架
  • Django Admin 站点管理详解
  • Mysql快速学习——《一》: Mysql的基础架构
  • Uniapp实现多种文件类型上传
  • 缓存之美:Guava Cache 相比于 Caffeine 差在哪里?
  • 文件管理器显示文件的方式是图标还是小图标还是列表需要看ListView_IsIconView宏定义
  • Git 的基本概念和使用方式。
  • 案例分析:安防5G低代码开发网关如何提升城市监控效率
  • 数据库核心-redo、undo
  • 关于ModbusTCP/RTU协议转Ethernet/IP(CIP)协议的方案
  • 【微信小程序 onTabItemTap:精准监听 TabBar 点击事件】
  • 解锁 AI 量化新境界:Qbot 携手 iTick
  • VSCode快捷键整理
  • 有人悬赏十万寻找“全国仅剩1只”的斑鳖,发帖者回应并证实
  • 虚构医药服务项目、协助冒名就医等,北京4家医疗机构被处罚
  • 交通运输部、水利部同日召开会议,深刻汲取贵州游船倾覆事故教训
  • 上海成五一国内最热门的入境游目的地,国际消费明显提升
  • 老人误操作免密支付买几百只鸡崽,经济日报:支付要便捷也要安全
  • 美国证实加拿大及墨西哥汽车零部件免关税