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

【算法】贪心算法:将数组和减半的最少操作次数C++

文章目录

  • 前言
  • 题目解析
  • 算法原理
  • 代码示例
  • 策略证明

前言

题目的链接,大家可以先试着去做一下再来看一下思路。2208. 将数组和减半的最少操作次数 - 力扣(LeetCode)

题目解析

要认真去把题目看一遍,画出题目中的有用信息。

在这里插入图片描述

示例一定是最重要的部分,因为它可以帮助我们更好的去理解题目的意思,和后续我们对题目其他示例的挖掘。

在这里插入图片描述

算法原理

在这里插入图片描述

代码示例

class Solution {
public:int halveArray(vector<int>& nums) {priority_queue<double> heap;//题目中除2有些奇数是有小数的,所以我们选择double类型,优先队列。double sum = 0.0;//这个sum是统计所有数组中数的和for(auto x : nums)//将数组中的所有数入堆的同时累加到sum中{heap.push(x);sum += x;}sum = sum / 2.0;//这里除2后,sum就是数组中所有数一半的和,而题目要求就是将数组和减半的最少操作次数。所以只要sum<=0,即可实现。int count = 0;//用来记录执行的最少操作次数while(sum > 0){double t = heap.top() / 2.0;//取出堆顶元素并且除2heap.pop();//将堆顶元素出堆sum -= t;count++;heap.push(t);//再次将除2后的堆顶元素入堆}return count;}
};

策略证明

证明方法:交换认证法

在这里插入图片描述

http://www.lryc.cn/news/587840.html

相关文章:

  • ubuntu22.04下配置qt5.15.17开发环境
  • 2.查询操作-demo
  • 解决Chrome此扩展程序不再受支持,因此已停用
  • 代数基本定理
  • 史上最清楚!读者,写者问题(操作系统os)
  • 美联储降息趋缓叠加能源需求下调,泰国证券交易所新一代交易系统架构方案——高合规、强韧性、本地化的跨境金融基础设施解决方案
  • 软考 系统架构设计师系列知识点之杂项集萃(110)
  • 在Adobe Substance 3D Painter中,已经有基础图层,如何新建一个图层A,clone基础图层的纹理和内容到A图层
  • K8S的Helm包管理器
  • WebView 性能调试全流程:卡顿问题实战还原与优化路径解析
  • 基于 Gitlab、Jenkins与Jenkins分布式、SonarQube 、Nexus 的 CiCd 全流程打造
  • 考完数通,能转云计算/安全方向吗?转型路径与拓展路线分析
  • 计算机毕业设计Java医学生在线学习平台系统 基于 Java 的医学生在线学习平台设计与开发 Java 医学在线教育学习系统的设计与实现
  • 【云服务器安全相关】如何使用 `ping` 命令排查云服务器网络连接问题
  • Java实现文件自动下载,XXL-Job定时任务中的HTTP文件下载最佳实践
  • JAVA 设计模式 适配器
  • 设计模式之适配器模式:让不兼容的接口协同工作的艺术
  • 闲庭信步使用图像验证平台加速FPGA的开发:第十四课——图像二值化的FPGA实现
  • 使用aiohttp实现高并发爬虫
  • 未来手机会自动充电吗
  • vscode 源码编译
  • TCP半关闭
  • 使用layui的前端框架过程中,无法加载css和js怎么办?
  • 如何通过添加企业logo视频水印来对教育视频进行加密?
  • 8:从USB摄像头把声音拿出来--ALSA大佬登场!
  • GNhao,长期使用跨境手机SIM卡成为新趋势!
  • 控制台打开mysql服务报错解决办法
  • 我的Qt八股文面试笔记1:信号与槽文件流操作
  • Sharding-Sphere学习专题(四)广播表和绑定表、分片审计
  • 胡志明证券交易所新一代交易系统解决方案——基于美联储利率决议背景下的越南跨境金融基础设施升