当前位置: 首页 > 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.证明

证明方法:交换论证法

http://www.dtcms.com/a/60445.html

相关文章:

  • 利用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快捷键整理
  • 【WPF】在System.Drawing.Rectangle中限制鼠标保持在Rectangle中移动?
  • Uniapp组件 Textarea 字数统计和限制
  • DeepSeekR1之四_在RAGFlow中配置DeepSeekR1模型
  • 【春招笔试真题】饿了么2025.03.07-开发岗真题
  • mac 被禁用docker ui后,如何使用lima虚拟机启动docker
  • 贪心算法--
  • C语言练习题--洛谷P生日*****(学会了新的思路)
  • leetcode日记(90)二叉树的锯齿形层序遍历
  • 【已解决】最新 Android Studio(2024.3.1版本)下载安装配置 图文超详细教程 手把手教你 小白
  • 文件操作详解(万字长文)