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

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

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.证明

证明方法:交换论证法


http://www.kler.cn/a/579041.html

相关文章:

  • Python 数据可视化创意分享:解锁数据之
  • Python性能优化面试题及参考答案
  • 【计算机网络入门】应用层
  • NO.33十六届蓝桥杯备战|函数|返回值|声明|调用|引用|函数重载(C++)
  • 软件工程画图题
  • 前端安全面试题汇总及参考答案
  • 如何创建炫酷的 3D CSS 旋转加载器:为你的网页增添动感
  • Compose笔记(八)--权限
  • 元脑服务器:浪潮信息引领AI基础设施的创新与发展
  • 基于Asp.net的零食购物商城网站
  • Ruoyi+uniapp+websocket点对点和广播通知消息
  • SpringBoot3—场景整合:AOT
  • 【图像处理与OpenCV:技术栈、应用和实现】
  • c#面试题整理6
  • 栈和队列2
  • Linux学习:文件系统
  • 17 HarmonyOS NEXT UVList组件开发指南(四)
  • 通领科技冲刺北交所
  • 使用 Elastic-Agent 或 Beats 将 Journald 中的 syslog 和 auth 日志导入 Elastic Stack
  • 创新算法!BKA-Transformer-BiLSTM黑翅鸢优化算法多变量时间序列预测